변수의 초기값은 코드에서 직접 입력하는 경우가 많습니다. 소스 코드 내에서 직접 입력된 값을 리터럴이라고 표현합니다. 정수리터럴, 실수 리터럴, 문자 리터럴, 문자열 리터럴, 논리 리터럴로 구분할 수 있습니다. 초기값으로 입력하였지만 상수와는 다르게 변경이 가능한 값이므로 리터럴 이라는 용어를 사용하여 표현합니다.
byte 1바이트 8비트
char 2바이트 16비트
short 2바이트 16비트 (-2^15 ~ 2^15 -1)
int 4바이트 32비트 (-2^31 ~ 2^31 -1)
long 8바이트 64비트
float 4바이트 32비트
double 8바이트 64비트
boolean 1바이트 8비트
메모리에 0, 1 저장하는 최소 기억단위 비트가 있습니다. 8개의 비트를 묶어 바이트라 표현합니다.
비트는 메모리 사용이 가능한 크기(수)를 표현합니다.
byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)
크기가 큰 타입을 byte로 쪼개어 다시 크기가 작은 타입의 byte 타입으로 변수에 저장하는 것이 가능합니다. 이처럼 강제 타입변환은 큰 데이터 타입을 작은 데이터 타입으로 쪼개어 저장하는 것을 의미합니다. ( = casting)
이진 포맷 기수를 사용하는 모든 부동소수점 타입은 0.1을 정확히 표현할 수 없기 때문에 0.1f는 0.1 근사값으로 표기합니다. 이는 0.1보다 큰 값으로 비교 연산을 하기 위해서는 피연산자 모두 float 타입으로 강제 타입 변환 후 비교 연산을 하던가 정수로 변환해서 비교합니다.
기본타입 (primitive type)
정수, 실수, 논리
기본타입은 변수에 실제 값을 저장합니다.
참조타입 (reference type)
배열, 열거, 클래스, 인터페이스
참조타입은 변수에 메모리의 번지 값을 저장합니다. 변수에 들어있는 번지 값으로 객체를 참조합니다. 참조타입 변수는 스택(Stack) 영역에 있고, 참조타입 변수 값인 메모리의 번지 값은 힙(Heap) 영역에 위치하고 있습니다.
int와 double 변수는 실제 값을 직접 저장하고 있지만, String 클래스 변수는 힙 영역에 String 클래스 객체의 주소값이 저장되어 있습니다. String 클래스 변수가 참조 타입 변수입니다.
JVM 힙(Heap), 가비지컬렉션(Garbage Collection) (0) | 2024.01.05 |
---|---|
JVM 메소드 영역 (Constant_pool) (0) | 2024.01.04 |
JPA 영속성 관리 (컨텍스트와 생명주기) (0) | 2024.01.02 |
JPA 엔티티 CRUD(조회 등록 수정 삭제) (1) | 2024.01.01 |
JPA 무엇인가 (사용하는 이유) (0) | 2023.12.31 |
댓글 영역