2023/04/03

이동규·2023년 4월 3일

JAVA 기초 문법 강의

목표

  • JVM에 대한 이해
  • 변수와 상수의 이해
  • 저장 공간의 종류에 대한 이해
  • 저장 공간 종류(변수 타입) 간의 변환에 대한 이해

JAVA 의 특징

  • 어디서나 동작 가능한 언어
  • 클래스(바구니 틀)/객체(바구니) 중요한 요소!! → 객체 지향적 언어

JVM

  • 자바의 가상 환경
    • 이를 통해 어디서든 코드가 구동할 수 있도록 함
  • java 컴파일러를 통해 .java 파일을 .class(바이트 코드)로 변환

  • java를 개발할 수 있게끔 하는 키트 → JDK
    • 컴파일러 역할
    • JRE 포함
    • 디버깅 역할

변수

  • 값의 타입 & 이름
  • 선언 = 초기화
  • 변하는 저장 공간

상수

  • 변하지 않는 저장 공간
  • 변수 앞에 final 추가 → 상수로 선언 (즉, 덮어쓰기를 시도하면 오류!!)

변수 타입

  • 기본형 & 참조형
    • 기본형 : 숫자, 문자형(char), boolean …
      • 문자형은 선언 시, 홑따옴표
      • float 는 선언 뒤에 F(접미사)가 붙음
    • 참조형 : String(문자열), Object, Array, List …
      • 문자열은 선언 시, 쌍따옴표
      • Array는 출력 시, Arrays.toString 사용
      • Wrapper Class
        • ex) int number = 21;
              Integer num = number;
          Sop(num.intValue());
  • 아스키 코드
    • ex) 숫자를 문자로
          int asciiNumber = sc.nextInt();
      
          char ch = (char)asciiNumber; 
    • ex) 문자를 숫자로
         char letter = sc.nextLine().charAt(0);
      int asciiNumber = (int)letter;

💡 **Stack 영역 vs Heap 영역**
  • Stack의 경우에는 정적으로 할당된 메모리 영역입니다.
    • 그래서, 크기가 몇 byte 인지 정해져있는 기본형 변수를 저장합니다.
    • 추가로, 크기가 정해져있는 참조형 변수의 주소값도 저장합니다.
  • Heap의 경우에는 동적으로 할당된 메모리 영역입니다.
    • 그래서, 크기가 계속 늘어날 수 있는 참조형 변수의 원본을 저장합니다.

형 변환

  • 자동으로 형을 바꿔주는 형태
    • 변수 타입 별 크기 순서
      • bytechar → short(2) → int(4) → long(8) → float(4) → double(8)
      • 작은 크기의 타입이 큰 크기의 타입으로 넘어갈 때 자동으로 형 변환이 일어남
      • 작은 크기의 타입이 큰 크기의 타입과 계산될 때 큰 타입으로 형 변환
💡 **자동 형변환 vs 강제 형변환**
  • **작은 타입 > 큰 타입 형변환시 (자동 형변환)**
    • 더 큰 표현범위를 가진 타입으로 변환되는것이라 값의 손실이 없습니다.
    • 값의 손실없이 변환이 가능하기 때문에 컴파일러가 자동으로 형변환을 해줍니다.
  • **큰 타입 > 작은 타입 형변환시 (강제 형변환 = 캐스팅)**
    • 더 작은 표현범위를 가진 타입으로 변환된는것이라 값의 손실이 생깁니다.
    • 값의 손실이 생기기 때문에 자동으로 형변환을 해주지 않고 개발자가 선택하여 형변환을 합니다.
profile
진짜 개발자가 되고 싶다

0개의 댓글