클래스 변수, 인스턴스 변수, 지역 변수(꼭 초기화 해야 함)
문자 char
정수 byte, short, int, long
실수 float double
논리 boolean
변수(variable)는 저장한 값을 변경가능하지만 상수(constant)는 '한 번'만 저장 가능

리터럴의 접두사와 접미사
접미사 : 대/소문자 구분 없이 사용.
float a = 1.4f;
byte b = 127;
byte b = 128; -> error, byte타입은 -128 ~ 127까지만 저장 가능
int i = 100;
int bi = 0b0101; // 2진수
int oct = 0100; // 8진수
int hex = 0x100; // 16진수
long l = 10000_000_000L; // L안붙이면 에러남. int범위를 벗어나는 값이기 때문에. 는 보기 편하라고 넣는 것임
float f = 3.14f; (f를 생략하면 double로 인식하여 오류가 남)
double d = 3.14d; (d는 생략가능)
Quiz
10. => double 10.0
.10 => double 0.10
10f => float 10.0
1e3 => double 1000.0
1) 가능한 케이스 : 범위가 변수 > 리터럴
int i = 'A'; // int의 저장범위가 char보다 크므로 가능함
long l = 103; // long > int
double d = 3.14f; // double > float
2) 불가능한 케이스 : 범위가 변수 < 리터럴
int i = 30_000_000_000; //int의 범위(20억)를 벗어남
long l = 3.14f // long < float
float f = 3.14 // float < double
3) byte, short변수에 int리터럴 저장 가능
byte b = 100; // byte범위 -128 ~ 127에 속하므로
byte b = 128; // 이건 범위를 벗어나서 오류
기본형 Primitive Type
참조형 변수 예제
Date today;
today = new Date();
// today에 객체의 주소를 저장하는 것