☕ Ex01.java
byte _1b_byte = 1;
short _2b_short = 2;
int _4b_int = 3; // ⭐️ 일반적으로 널리 사용
long _8b_long = 4;
자료형 | 크기 | 표현 범위 |
---|---|---|
byte | 1바이트 (8비트) | -128 ~ 127 (-2^7 ~ 2^7-1) |
short | 2바이트 | -32,768 ~ 32,767 |
int | 4바이트 | -2,147,483,648 ~ 2,147,483,647 |
long | 8바이트 | -9,223,372,036,854,775,808 |
~ 9,223,372,036,854,775,807 |
// ⚠️ 자료형의 범주 외의 수를 담을 수 없음
byte overByte1 = 127;
byte overByte2 = 128;
byte overByte3 = -128;
byte overByte4 = -129;
// 큰 자료형에 작은 자료형의 값을 넣을 수 있음
// 💡 묵시적(암시적) 형변환
_2b_short = _1b_byte;
_4b_int = _1b_byte; _4b_int = _2b_short;
_8b_long = _1b_byte; _8b_long = _2b_short; _8b_long = _4b_int;
// ⚠️ 작은 자료형에 큰 자료형의 값을 '그냥' 넣을 수 없음
// 들어있는 값의 크기와 무관
_1b_byte = _2b_short; _1b_byte = _4b_int; _1b_byte = _8b_long;
_2b_short = _4b_int; _2b_short = _8b_long;
_4b_int = _8b_long;
// ⭐ int의 범위를 벗어나는 수에는 리터럴에도 명시 필요
// 끝에 l 또는 L을 붙여 볼 것
long _8b_long1 = 123456789123456789;
// 💡 가독성을 위해 아래와 같이 표현 가능 (자바7부터)
int _4b_int2 = 123_456_789;
long _8b_long2 = 123_456_789_123_456_789L;
☕ Ex02.java
byte byteNum;
int smallIntNum = 123;
// 명시적(강제) 형변환
// - 개발자 : "내가 책임질테니까 그냥 넣으세요."
byteNum = (byte) smallIntNum;
int intNum = 12345;
// ⚠️ 강제로 범주 외의 값을 넣을 경우 값 손실
byteNum = (byte) intNum; // 💡 12345 % 128