자바가 제공하는 다양한 데이터 타입 변수 & 배열 학습
자바의 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
가 리터럴이 된다.