
실제값을 저장한다. 논리형 변수 Boolean : True False
문자형 변수 char : 'A', 'B' ... 등
💡문자형의 경우 반드시 ''(작은 따옴표)를 사용해야하고, 문자 뒤에
\n(널문자)가 존재하지 않는다.
정수형 변수
💡 byte ➡︎ short ➡︎ int ➡︎ long 순으로 크기가 결정되며 크기는 1byte, 2byte, 4byte, 8byte이다.
❗
long 데이터 타입의 경우int와의 구분을 위해 데이터의 마지막에 L을 붙여준다.
실수형 변수
💡 float ➡︎ double 순으로 크기가 결정되며 크기는 4byte, 8byte이다.
❗
실수형의 경우부동 소수점 방식이기 때문에 표현 범위가 매우 넓다. 따라서 정수형 변수가 실수형을 담지 못할 수 있다. 즉, 자동 형변환이 이루어지지 않는다.
원본 값의 주소 값을 저장한다.문자열 : String "Hello", "Apple ... 등
💡문자열의 경우 반드시 ""(작은 따옴표)를 사용해야하고, 문자 뒤에
\n(널문자)가 존재한다.
그 외 : Object, Array, List
단일 저장공간에 담을 수 없는 값 (객체, 배열, 리스트)
❗
단일 저장공간:기본형처럼 단 하나의 값만 저장할 수 있는 것

stack 영역 : 정적으로 할당된 메모리 영역
기본형 값과참조형의 주소값을 저장하는 영역이다.- 크기가 정해져 있다.
heap 영역 : 동적으로 할당된 메모리 영역
참조형 변수를 위한 별도의 영역이다.- 크기가 정해져 있지 않다.
기본형 변수를 클래스로 감싸는 것을 의미한다.
💡래퍼 클래스로 기본형을 감싸면 래퍼 클래스가 가지고 있는
유용한 기능(메서드)를 사용할 수 있다.
기본 타입을 래퍼 클래스로 감싸는 것 
❗
int number = 10;(기본형)을 Integer 타입으로 감싸면 num이 다양한 메소드를 사용할 수 있다.
래퍼 클래스 타입을 기본 타입으로 가져오는 것 변수. intValue();
문자를 숫자로, 숫자를 문자로 변경하고 싶을 때 사용

💡 형변환을 통해 변경가능하다.
값의 손실이 있다. int a = 10;
double b = (double) a
(double) a를 통해 명시적으로 형변환을 했다.
값의 손실이 없다. int a = 10;
long b = (double) a
int c = 100;
double d = c;
❗
변수 크기 순으로 형이 자동으로 변환된다.
💡작은 크기와 큰 크기가 계산되면 자동으로 큰 타입으로 변환된다.
int a = 10; double b = 3.3;
double이 더 큰 크기이기 때문에 결과값이 13.3이 나온다.
지역 변수 <=> 전역 변수 (지역 변수와 반대되는 개념)
정의될 때 생성되어 메서드가 종료되면 소멸하는 변수를 말한다. 전역 변수
인스턴스를 생성할 때 자동으로 초기화된다.

💡 final을 이용하면 해당 number가
상수 값으로 명시된다.
❗final은변경될 여지가 아예 없을 때, 절대 수정하지 않을 때사용한다. 또한 final은 반드시 초기값을 지정해 주어야한다.
💡 static final을 이용하면 해당 number는 공통적으로 사용되는, 수정 불가능한
상수 값으로 명시된다.
ex > static final double N_PI = 3.14;
정리 잘 하셨네요 잘봤습니다 :)