3. JAVA - 개요, 변수, 연산자

hsso_o·2024년 7월 5일
0

스터디

목록 보기
7/44
  • JAVA SE/EE/ME
    • JAVA SE(Standard Edition)
      일반 PC, 서버, 고사양 시스템 들을 위한 표준 자바 플랫폼
      표준의 개발 환경을 지원하는 자바 가상 머신 규격 및 API를 포함
      • java.lang., java.util., java.io.* 등등
    • JAVA EE(Enterprise Edition)
      서버측 개발을 할 때 사용하는 플랫폼
      EJB 아키텍처 기반 컴포넌트, JSP, Sevlet, JNDI 등을 포함한 개발에 주로 사용
    • JAVA ME(Micro Edition)
      모바일과 같은 한정된 자원을 가진 곳을 지원하기 위해 만들어진 플랫폼

JDK, JRE

  • JDK는 JRE를 포함하고 있다. Java 프로그램을 실행만 한다면 JRE만 설치하면 되지만,
    Java 프로그래밍을 한다면 JDK를 설치해야 함

  • JDK(Java Development Kit)

    • ‘자바 개발 키트’의 약자
    • 자바 개발할 때 필요한 컴파일러(javac)나 자바콘솔, javadoc, 등과 같은 키트(kit)들을 포함하고 있어서 프로그램을 생성하고 컴파일을 할 수 있다.
  • JRE(Java Runtime Environment)

    • ‘자바 실행 환경’의 약자.
    • 자바로 만들어진 프로그램은 JRE가 있어야 기동이 가능한데, JRE는 자바 가상머신(Java Virtual Machine) 과 자바 클래스 라이브러리(Java Class Library),
      자바 명령(Java Command)를 포함한 자바 실행에 필요한 패키지를 가지고 있다.

변수

  • 리터럴 : 변하지 않는 데이터 그 자체

    • 상수는 데이터가 저장되는 메모리 상의 공간을 의미함
  • 변수 : 데이터를 저장하기 위해 할당 받은 메모리 공간을 의미

    • 사용 목적

      1. 값에 의미 부여 -> 코드 읽기, 협업 및 유지보수에 용이
      2. 저장한 값을 재사용 하기 위한 목적
      3. 시간에 따라 변하는 값을 저장 및 사용
    • 자료형

      • 다양한 값의 형태별로 어느 정도의 크기를 하나의 값으로 취급할 것인지 미리 Compiler와 약속한 키워드
      • 기본자료형(Primitive Type)과 참조자료형(Reference Type)
          // 기본 자료형
          /* 정수를 취급하는 자료형 */
          byte bnum;          // 1byte
          short snum;         // 2byte
          int inum;           // 4byte
          long lnum;          // 8byte
      
          /* 실수를 취급하는 자료형 */
          float fnum;         // 4byte
          double dnum;        // 8byte
      
          /* 문자를 취급하는 자료형 */
          char ch;            // 2byte
      
          /* 논리값을 취급하는 자료형 */
          boolean isTrue;     // 1byte
      
          /* 설명. 문자열은 참조 자료형이다. (Feat. 대문자로 시작) */
          String str;         // 4byte -> 모든 참조 자료형은 4byte
  • 상수

    • 한 번 메모리에 저장된 데이터를 변경할 수 없음
      • 변수와 동일하게 데이터를 저장할 수 있는 공간
    • final 키워드 사용하여 선언
    • 사용 목적
      • 변경되지 않는 고정된 값을 저장할 목적으로 사용
      • 초기화 이후 값 대입 시, 컴파일 에러 발생시켜 수정되지 못하도록 함
    /* 상수 선언 시 자료형 앞에 final 키워드를 붙인다. */
    final int AGE;

오버플로우

  • 변수가 담을 수 있는 값의 범위를 벗어나는 데이터를 담았을 때 발생하는 현상
  • 자료형 값의 최대 범위를 벗어나는 경우, 발생한 carry를 버림처리 하고 sign bit를 반전시켜 최소값으로 순환시키는 현상
    public class OverflowExample {
      public static void main(String[] args) {
          byte x = 127; // 8비트 정수 최대값
          x = (byte) (x + 1); // 오버플로우 발생
          System.out.println(x); // 출력: -128
      }
    }
  • 언더플로우 : 데이터가 표현할 수 있는 최소값보다 작아질 때 발생하는 현상
    public class UnderflowExample {
      public static void main(String[] args) {
          byte x = -128; // 8비트 정수 최소값
          x = (byte) (x - 1); // 언더플로우 발생
          System.out.println(x); // 출력: 127
      }
    }

형변환(Casting)

  • 변수 또는 리터럴을 다른 타입으로 변환하는 것
  • 사용 이유
    • 프로그램에서 변수값을 넣거나 연산을 수행할 때, 같은 타입끼리만 가능하기 때문

자동 형변환(묵시적 형변환)

  • 컴파일러가 자동으로 수행해주는 타입 변환
    -> 데이터 손실 가능성이 없는 경우, 자동으로 타입을 맞춰줌
    • 작은 자료형 → 큰 자료형
    • 정수 → 실수
    • 문자형 → int

강제 형변환(명시적 형변환)

  • 형변환 연산자를 이용한 강제 수행
    -> 자동 형변환의 조건과 정반대인 경우
    • 큰 자료형 → 작은 자료형
    • 실수 → 정수
    • 문자열을 int 미만 크기 변수에 저장 시

  • 다운 캐스팅 시에 데이터가 손실될 수 있음.

연산자

  • 연산 : 데이터를 처리하여 결과를 만드는 것

  • 연산자 : 연산 과정에서 사용되는 기호 또는 부호

  • 연산자 종류

    종류연산자설명
    산술 연산자+, -, *, /, %사칙연산 포함 기타 연산자
    대입 연산자=, +=, -=, *=, /=, %== 오른쪽에 있는 값을 왼쪽에 대입하는 연산자
    증감 연산자++, --피연산자를 하나만 갖는 단항 연산자
    비교 연산자>, <, >=, <=, ==, !=두 피연산자의 상대적인 크기를 비교하는 연산자
    논리 연산자&&,
    삼항 연산자? :피연산자 항목이 3개인 연산자
    비트 연산자&,, ^, ~, <<, >>, >>>
  • 연산자 우선순위/결합규칙

💡 단항 연산자는 연산에 필요한 피연산자의 갯수가 하나다.
예) ++x, x++, --x, x++
이항 연산자는 연산에 필요한 피연산자이며 대부분의 연산자가 이항연산자이다.
예) a + b, a += b, a == b
삼항 연산자는 연산에 필요한 피연산자의 갯수가 세 개이다.
예) x ? a : b

profile
아뇨 소혠데요-

0개의 댓글