단 하나의 값을 저장할 수 있는 메모리 공간
기본형(Primitive Type)
- 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double) 계산을 위해 실제 값을 저장한다.
참조형(Reference Type)
- 객체의 주소를 저장한다. 8개의 기본형을 제외한 나머지 타입
Data today = new Data();


실수형은 정수형과 저장형식이 달라서 같은 크기라도 훨씬 큰 값을 표현할 수 있으나 오차가 발생할 수 있다.
따라서 실수형에서는 범위뿐만 아니라 정밀도도 타입 선택의 중요한 기준이 된다.
상수
final int MAX_SPEED = 10;
리터럴
int year = 2023;
final int MAX_SPEED = 10;프로그래밍에서는 상수를 '값을 한 번 저장하면 변경할 수 없는 저장공간'으로 정의했기 때문에 이와 구분하기 위해 상수를 리터럴이라는 다른 이름으로 불러야만 했다.

int small = 100;
long big = 100_000_000_000L;
float pi = 3.14f;
double rate = 1.618d;
float pi = 3.14; //에러. float타입 변수에 double타입 리터럴 지정 불가
double rate = 1.618; //OK
// 타입이 달라도 저장범위가 넓은 타입에서 좁은 타입의 값을 저장하는 것은 허용된다.
int i = 'A'; // OK. 유니코드인 65가 변수 i에 저장된다.
long l = 123; // OK.
double d = 3.14f; // OK.
String str = ""; // OK.
char ch = ''; // 에러.
char ch = ' '; // OK. 공백 문자(blank)로 변수 초기화

‘%n’ 대신 ‘\n’을 대신 사용해도 되지만, OS마다 줄바꿈 문자가 다를 수 있기 때문에 ‘%n’을 사용하는 것이 더 안전하다.
기본형과 참조형간의 형변환은 불가능하다.