
자바가 제공하는 다양한 데이터 타입 변수 & 배열 학습
자바의 Primitive Type (기본형)은 모두 8개로 크게 정수형 실수형 문자형 논리형 4가지로 구분된다.
| 타입 | 메모리 | 기본값 | 표현범위 | |
|---|---|---|---|---|
| 정수형 | byte | 1 byte | 0 | -128 ~ 127 |
| short | 2 byte | 0 | -32,768 ~ 32,767 | |
| int | 4 byte | 0 | -2,147,483,648 ~ 2,147,483,647 | |
| long | 8 byte | 0L | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | |
| 실수형 | float | 4 byte | 0.0f | (3.4 X 10-38) ~ (3.4 X 1038) 의 근사값 |
| double | 8 byte | 0.0 | (1.7 X 10-308) ~ (1.7 X 10308) 의 근사값 | |
| 문자형 | char | 2 byte (unicode) | '\u0000' | 0 ~ 65,535 |
| 논리형 | boolean | 1 byte | false | true, false |
총 8개의 기본형 타입을 미리 정의하여 제공한다.
기본값이 있기 때문에 Null이 존재하지 않는다. 만약 기본형 타입에 Null을 넣고 싶다면 래퍼 클래스를 활용한다.
실제 값을 저장하는 공간으로 스택(Stack) 메모리에 저장된다.
만약 컴파일 시점에 담을 수 있는 크기를 벗어나면 에러를 발생시키는 컴파일 에러가 발생한다.
기본형 타입을 제외한 타입들이 모두 참조형 타입이다.
빈 객체를 의미하는 Null이 존재한다.
값이 저장되어 있는 곳의 주소값을 저장하는 공간으로 힙(Heap) 메모리에 저장된다.
문법상으로는 에러가 없지만 실행시켰을 때 에러가 나는 런타임 에러가 발생한다.
| 타입 | 예시 | 기본값 | 메모리 |
|---|---|---|---|
| 배열(Array) | int[] arr = new int[5]; | null | 4 byte (객체의 주소값) |
| 열거(Enumeration) | null | 4 byte (객체의 주소값) | |
| 클래스(Class) | String str = "test"; Student sujin = new Student(); |
null | 4 byte (객체의 주소값) |
| 인터페이스(Interface) | null | 4 byte (객체의 주소값) |
💡 컴퓨터 과학 분야에서
리터럴(literal)이란 소스 코드의 고정된 값을 대표하는 용어다.
자바에서의 리터럴은 보통 기본형의 데이터를 의미한다.
int a = 24
여기서 a 변수에 할당된 24가 리터럴이 된다.
