
자바 소스 파일 -> 바이트 코드 파일 -> 기계어 -> 실행
어떤 값을 저장하는 메모리 공간
소스 코드 내에서 직접 입력된 값
ex) 1, 02, 0x5 ex) 0.25 ex) 'A', '한', '\n', '\t' ex) "abcd" ex) true, falsebyte, char, short, int, longfloat ex) 3.14F, doubleboolean정수 리터럴에 10의 지수를 나타내는 E 또는 e가 있으면 실수 타입에 저장해야 함
ex) double test1 = 3e6 -> 3000000
프로그램 실행 도중 작은 타입은 큰 타입으로 자동 타입 변환 됨
byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)
ex) int <- byte
byte byteValue = 10;
int intValue = byteValue; //자동 타입 변환
ex) int <- char
char charValue = 'A';
int intValue = charValue; //65
ex) char <- byte
byte byteValue = 65;
char charValue = byteValue; //오류 (char는 음수 값 불가능)
char charValue = (char) byteValue; //가능
큰 타입을 작은 타입 단위로 쪼개고 끝 한부분만 작은 타입으로 강제 변환
ex)
int intValue = 103029770;
byte byteValue = (byte)intValue;
실행결과 = 10

ex)
int num1 = 123456780;
int num2 = 123456780;
float num3 = num2;
num2 = (int) num3;
int result = num1 - num2; // -4
float: 부호(1bit) + 지수(8bit) + 가수(23bit)
서로 다른 타입의 피연산자는 같은 타입으로 변환
* 두 피연산자 중 크기가 큰 타입으로 자동 변환
ex)
int intValue = 10;
double doubleValue = 5.5;
double result = intValue + doubleValue;
//double result = (double)intValue + doubleValue; 자동 변환