JAVA | 형 변환(Type

크기에 따른 유형 순서(실제 유형은 항상 정수 유형보다 큽니다)

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 타입

	}
}