크기에 따른 유형 순서(실제 유형은 항상 정수 유형보다 큽니다)
byte < short = char < int < long(8) < float(4) < double
– 더 작은 유형의 값을 더 큰 유형에 붙여넣으면 해당 유형이 자동으로 변환됩니다.
.
(천연 캐스트)
– 더 큰 유형의 값을 더 작은 유형에 삽입할 때 강제 캐스트가 필요합니다.
.
(이는 값이 손상되었을 수 있지만 개발자가 직접 입력했기 때문에 책임이 있음을 의미합니다.
)
- 큰 유형에서 작은 유형으로 이동하면 데이터 손상이 발생할 수 있으므로 삽입하고 강제로 유형 변환을 수행할 수 없습니다.
(주조 유형)이게 필요해.
public class A05_TypeCasting {
public static void main(String() args) {
byte b1 = 127;
short s1 = b1;
b1 = (byte)s1; // short -> byte 형 변환
}
}
- 큰 타입에서 작은 타입으로 강제 변환되어 값이 홀수인 경우
public class A05_TypeCasting {
public static void main(String() args) {
byte b1 = 127;
short s2 = 31333;
b1 = (byte)s2;
System.out.println("s2 : " + s2);
System.out.println("s2를 형 변환 한 b1의 값 : " + b1);
double d1 = 123.12345678912345;
float f1 = (float)d1;
System.out.println("d1 : " + d1);
System.out.println("d1을 형 변환 한 f1의 값 : " + f1);
}
}
- 실수 유형은 소수점 이하 값을 잃을 위험이 있으므로 정수 유형을 입력할 때는 항상 캐스트가 필요합니다.
.
public class A05_TypeCasting {
public static void main(String() args) {
float f1 = 123.123f;
long l1 = (long)f1;
System.out.println("l1의 값 : " + l1);
}
}
- 쉿장소, 문자 모든 2바이트 그만큼하지만 짧은에서 음수 값을 가질 위험이 있으므로 유형 캐스팅이 필요합니다.
.
public class A05_TypeCasting {
public static void main(String() args) {
short s1 = -123;
char c1 = (char)s1;
System.out.println(c1);
}
}
- 채널~이다유형에서 짧은범위 밖에 양의 정수가 있을 수 있기 때문에 유형 캐스팅이 필요합니다.
.
public class A05_TypeCasting {
public static void main(String() args) {
char c1 = 61000;
short s1 = (short)c1;
System.out.println(s1);
int ch1 = 'A'; // A : 65
char ch2 = (char)ch1;
System.out.println(ch1); // int 타입
System.out.println(ch2); // char 타입
}
}