기본타입 / 참조타입 으로 나뉩니다.
(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에 생성됩니다.
더 자세한 메모리 구조에 대해서는 다음 포스팅에서 하겠습니다!
'WEB > JAVA' 카테고리의 다른 글
내가 보려고 정리하는 JAVA 멀티 스레드 1 - 멀티스레드 개념 (0) | 2021.09.13 |
---|---|
객체 지향 프로그래밍 - 객체, 캡슐화 (0) | 2020.12.05 |
Enum Type 사용하기 (0) | 2020.11.17 |
Java Enum이란? (0) | 2020.04.19 |
람다식 (stream,map,collect) (0) | 2020.04.13 |