类型转换
类型转换
机器在运算时会将各种基本数据类型先行转化,然后计算,其规则为:byte,short,char --> int --> long --> float --> double
而根据这个规则,可以将类型转化分成两种:
(1).直接转换
直接转换即依照转换规则进行转换操作,如(为byte --> int
点击查看代码
public class Demo04 {
public static void main(String[] args) {
byte i = 1;
int b = i;
System.out.println(i);
System.out.println(b);
}
}
(2)强制转换
强制类型转换因为为“强制”实行,因此并不需要遵守运算规则,即无论如何都可进行,如(为int --> byte
点击查看代码
int i1 = 128;
byte b1 = (byte)i1;
System.out.println(i1);
System.out.println(b1);
问题来了,为什么强制转换时byte的符号变了呢?
答:int的容量是大于byte的,且byte的容量为-128 —— 127,而128超出了byte的最大容量,产生了内存溢出,因此变为10000000,即-128的补码。