자바의 데이터 타입에는 기본형(Primitive Type)과 참조형(Reference Type)이 있습니다.
- Primitive Type
1) 논리형(boolean)
2) 문자형(char)
3) 정수형(byte, short, int, long)
4) 실수형(float, double)- Reference Type
1) 클래스(Class)
2) 인터페이스(Interface)
3) 배열(Array)
4) 열거(Enum)
5) etc...
: 기본형은 실제 값을 저장하며, 스택 메모리에 할당됩니다.
자바에서 기본형은 사용하기 전에 미리 선언(Declare)되어야 합니다.
OS에 따라 자료형의 길이가 변경되지 않습니다.
비객체 타입이며, 따라서 Null값을 가질 수 없습니다.
다음과 같이 총 8가지의 분류가 있습니다.
byte : 8bit 정수, 값의 범위는 -128부터 127까지입니다.
short : 16bit 정수, 값의 범위는 -32,768부터 32,767까지입니다.
int : 32bit 정수, 값의 범위는 약 -2.1억부터 2.1억까지입니다.
자바에서 가장 기본적으로 사용되는 정수 타입입니다.
long : 64bit 정수, 매우 큰 정수 값을 저장할 때 사용합니다.
값의 범위는 약 -9.2경부터 9.2경까지입니다.
float : 32bit 부동소수점 수, 큰 실수 값을 저장할 때 사용하지만 double보다 정밀도가 낮습니다.
double : 64bit 부동소수점 수, 기본 실수 타입입니다. 정밀한 실수 값을 저장할 때 사용합니다.
: 자바에선 Primitive Type(기본형)을 제외한 모든 타입이 참조 타입 입니다.
참조 타입은 객체의 메모리 주소를 저장하며, 이 객체는 힙 메모리에 할당됩니다.
참조 타입은 자바에서 최상위 java.lang.Object 클래스를 상속하는 모든 클래스들을 말합니다.
빈 객체를 의미하는 Null이 존재합니다.
String은 참조형에 속하지만, 문자열 리터럴을 사용하여 간편하게 생성할 수 있습니다
(ex, String str = "Hello World";)
[큰 크기 타입] <= [작은 크기 타입]
작은 크기를 가지는 타입이 큰 크기를 가지는 타입에 저장될 때 자동으로 타입이 변환됩니다.
char 타입의 범위는 음수가 저장되지 않으므로 byte 타입이 char 타입으로 자동 변환되지 않습니다.
[작은 크기 타입] <= (작은 크기 타입) 큰 크기 타입
char cNumber = (char) byteData; //강제 타입 변환.
byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)
[참고 자료]