종류 | 데이터형 | 크기(byte / bit) | 표현범위 |
---|---|---|---|
논리형 | boolean | 1 / 8 | true 또는 false |
문자형 | char | 2 / 16 | '\u0000' ~ 'uFFFF' (16비트 유니코드 문자 데이터) |
정수형 | byte | 1 / 8 | -128 ~ 127 |
정수형 | short | 2 / 16 | -32768 ~ 32767 |
정수형 | int | 4 / 32 | -2147483648 ~ 2147483647( -21억 ~ + 21억) |
정수형 | long | 8 / 64 | -9223372036854775808 ~ 9223372036854775807(-100경 ~ + 100경) |
실수형 | float | 4 / 32 | 1.4E-45 ~ 3.4028235E38 |
실수형 | double | 8 / 64 | 4.9E-324 ~ 1.7976931348623157E308 |
char
- Java에서 유일하게 제공되는 unsigned 형태(음수 X, 0부터 시작하는 데이터 형태)
정수형
- 정수형 데이터를 사용하게 되면 JVM에서 기본적으로 int형 데이터타입의 데이터로 인식함
=> int보다 작은 자료형의 값을 계산시 int형으로 형변환되어 연산이 수행된다.
=> int형 데이터 타입의 범위를 넘어서는 long 데이터 타입을 사용할 때는 정수 데이터 맨 뒤 쪽에 'L'을 붙여줘야한다.
실수형
- 실수형 데이터를 사용하게 되면 double형 데이터타입이 기본 데이터타입이다.
=> float형 데이터 타입을 사용하기 위해서는 f를 붙여줘야 한다.
Integer iA = new Integer(123);
Integer iB = new Integer(123);
int ia = (int)iA; // 언박싱
int ib = iB; // 오토 언박싱
Integer iC = (Integer)456; // 박싱
Integer iD = ia; // 오토 박싱
int a = null; // 불가능
Integer A = null; //가능
List<int> list; //불가능
List<Integer> list;//가능
원시타입이 사용하는 메모리 | 참조타입이 사용하는 메모리 |
---|---|
boolean - 1bit | Boolean – 128 bits |
byte - 8bits | Byte - 128bits |
short, char - 16bits | Short, Charater - 128bits |
int, float - 32bits | Integer, Float - 128bits |
long, double - 64bits | Long, Double - 196bits |
[참고자료]
https://siyoon210.tistory.com/139
https://studymake.tistory.com/420