기본타입 Primitive Type
byte, char, short, int, long, float, double, boolean
실제 값을 변수 안에 저장한다.
참조타입 Reference Type
배열타입, 열거타입, 클래스, 인터페이스, Integer
메모리에는 실제값의 주소(번지)가 저장되고, 실제 값은 힙 영역에 저장된다.
2021.10.02 - [JAVA/JAVA] - JVM 자바 가상머신
기본타입 종류
정수형
[byte]
- 색상 정보 및 파일 또는 이진(바이너리) 데이터를 처리할 때 주로 사용됨.
- 정수 타입 중 가장 작은 범위의 값을 표현함.
- 저장되는 값의 범위 : -27 ~ 27
- 메모리 사용 크기 : 1 byte ( 8 bit )
[char]
- 글자 1개, 유니코드 1개를 저장하기 위한 데이터 타입
- 저장되는 값의 범위 : 0 ~ 216
- 메모리 사용 크기 : 2 byte ( 16 bit )
[short]
- 2 byte로 표현되는 정수값을 저장하기 위한 데이터 타입
- 저장되는 값의 범위 : -215 ~ 215-1
- 메모리 사용 크기 : 2 byte ( 16 bit )
[int]
- 4 byte로 표현되는 정수값을 저장하기 위한 데이터 타입
- 자바에서 정수 연산을 처리하는 기본 데이터 타입으로 short형과 int형을 연산하면 결과가 int형으로 반환됨.
- 저장되는 값의 범위 : -232 ~ 232-1
- 메모리 사용 크기 : 4 byte ( 32 bit )
[long]
- 8 byte로 표현되는 정수값을 저장하기 위한 데이터 타입
- long 타입 변수를 초기화할 때는 정수값 뒤에 L을 붙여주어 8 byte 정수임을 컴파일러에게 알려줘야 함.
- 저장되는 값의 범위 : -263 ~ 263-1
- 메모리 사용 크기 : 8 byte ( 64 bit )
실수형
[float]
- 소수점이 있는 실수 데이터를 저장하기 위한 데이터 타입
- 부호(1bit) + 지수(8bit) + 가수(23bit)
- float 타입 변수를 초기화할 때는 실수값 뒤에 F을 붙여주어 8 byte 실수임을 컴파일러에게 알려줘야 함.
- 10진수를 나타내는 e가 리터럴에 포함되어 있으면 실수 타입 변수에 저장해야 한다. ex) 3e6 = 3000000, 2e-3 = 0.002
- 저장되는 값의 범위 : -263 ~ 263-1
- 메모리 사용 크기 : 4 byte ( 32 bit )
[double]
- 소수점이 있는 실수 데이터를 저장하기 위한 데이터 타입
- 부호(1bit) + 지수(11bit) + 가수(52bit)
- 저장되는 값의 범위 : -263 ~ 263-1
- 메모리 사용 크기 : 8 byte ( 64 bit )
논리형
[boolean]
- 1 byte로 표현되는 논리값(true/false)를 저장하기 위한 데이터 타입
참조타입 종류
[String]
- 문자열을 저장하는 객체
- 변수1과 변수2이 같은 내용인 문자열을 참조하면, 같은 String 객체를 참조함.
String var1 = "Manta";
String var2 = "Manta";
System.out.println(var1 == var2); // True를 반환
- new를 이용해 객체를 생성하게 되면 다른 String객체를 참조함.
String var1 = new String("Manta");
String var2 = new String("Manta");
System.out.println(var1 == var2); //False를 반환
[Array]
- 특정 기본타입 데이터 여러개를 모아서 저장하는 객체
- 배열은 선언과 동시에 저장할 수 있는 데이터 타입과 길이가 결정됨. 변경할 수 없음.
데이터타입[] 변수 = {값1, 값2, 값3, 값4};
데이터타입[] 변수 = new 데이터타입[] {값1, 값2, 값3, 값4};
데이터타입[] 변수 = new 데이터타입[길이];
- {}안에 주어진 값들을 항목으로 가지는 갹체를 힙에 생성하고, 스택 영역에 생성된 변수에 주소값을 저장한다.
- 타입별 배열의 초기값
Type | Data Type | initial value |
기본(정수) | byte[] | 0 |
char[] | \u0000 | |
short[] | 0 | |
int[] | 0 | |
long[] | 0L | |
기본(실수) | float[] | 0.0F |
double[] | 0.0 | |
기본(논리) | boolean[] | false |
참조 | String, 클래스 등등 | null |
[Enum]
- 한정된 값만을 갖는 데이터 타입
출처
- 신용권, 이것이 자바다, 한빛아카데미
'JAVA > JAVA' 카테고리의 다른 글
Objects 클래스 (0) | 2021.09.28 |
---|---|
Object Class (0) | 2021.09.28 |
java.lang 패키지 (0) | 2021.09.27 |
어노테이션 Annotation (@) (0) | 2021.09.26 |
NaN과 Infinity (0) | 2021.09.24 |