java中强制类型转换与xxxValue
以下这种情况是没有区别的
超过byte范围的数字会损失精度
300会变成44
int:4字节,也就是32位,
byte:1字节,也就是8位
300的二进制:100101100
降为byte后:00101100 →44
public class note01 {
public static void main(String[] args){
//将int类型数据转化为byte类型
int number_300 = 300;
int number_100 = 100;
//强制类型转换
byte number_300_byte = (byte)number_300;
byte number_100_byte = (byte)number_100;
System.out.println("number_300_byte:"+number_300_byte);
System.out.println("number_100_byte:"+number_100_byte);
//xxxValue
Integer number_300_Integer = 300;
Integer number_100_Integer = 100;
Byte number_300_byteValue = number_300_Integer.byteValue();
Byte number_100_byteValue = number_100_Integer.byteValue();
System.out.println( "number_300_byteValue:"+number_300_byteValue );
System.out.println( "number_100_byteValue:"+number_100_byteValue );
Byte a = number_300_byteValue;
System.out.println( a instanceof Byte);//java没有typeof
//valueOf
Integer x = Integer.valueOf(300);
System.out.println(x);
//Byte x = Byte.valueOf(300); 不能用此种方法将int变成byte
}
}