WEB/JAVA

[JAVA] 의 데이터 타입의 분류

 

기본타입 / 참조타입 으로 나뉩니다.

(immutable / mutable)


기본타입은 정수, 실수, 문자, 논리 리터럴을 저장하는 타입입니다.

종류 기본타입 메모리 기본값
정수 byte 8bit  1byte 0
char 16bit  2byte 유니코드(\u0000), ASCII, 문자형
short 16bit  (2byte) 0
int 32bit  (4byte) 0
long 64bit (8byte) 0
실수 (부동 소수점) float 32bit  (4byte) 0.0F
double 8bit  (1byte) 0.0
논리 boolean 8bit  (1byte) false

메모리에는 0과 1을 저장하는 최소 기억 단위인 bit가 있습니다. 이 bit 8개를 묶으면 byte가 됩니다.

이 byte가 클수록 표현하는 값으 범위가 커집니다. 범위를 기억할 필요는 없지만 크기는 기억해두는게 좋습니다.

왜냐하면 값의 범위를 초과하게 되면 오버플로우 현상이 발생하기 때문입니다. 오버플로우가 발생할 경우 원하지 않는 이상한 값이 변수에 들어가게 됩니다.

 


참조 타입은 객체의 주소를 참조하는 타입으로 배열, 클랫, 열거, 인터페이스 타입을 말합니다.

 

기본타입에서 실제 값을 변수에 저장하지만 참조 타입은 메모리의 주소 값을 저장합니다.

즉 주소를 통해 객체를 참조한다는 뜻으로 참조 타입이라고 부릅니다.

 

Stack에 주소 저장 실제값은 Heap

 

기본타입은 Stack영역에 생성되고, 참조타입은 위의 그림처럼 Heap에 생성됩니다.

 

더 자세한 메모리 구조에 대해서는 다음 포스팅에서 하겠습니다!