当大的类型向小的类型转换时
有两种转换方式:隐式转换(自动转换),显式转换(强制转换)
当小的类型向大的类型转换时
只有一种转换方式:,显式转换(强制转换),且有可能造成信息丢失
1.隐式转换
public class HELLOJAVA {
public static void main(String[] args) {
byte a = 8;
System.out.println(a);
int b = a;
System.out.println(b);
long c = b;
System.out.println(c);
double d = c;
System.out.println(d);
}
}
运行结果
8
8
8
8.0
2.显式转换(强制类型转换)
可能会导致精度损失
语法: (类型名)要转换的值
比如: int a=100;
byte b=(byte)a;
public class HELLOJAVA {
public static void main(String[] args) {
int a = 100;
byte b = (byte)a;
System.out.println(b);
}
}
100
会导致精度损失
例子1:数据失准
public class HELLOJAVA {
public static void main(String[] args) {
float a = (float)3.1415926;
System.out.println(a);
}
}
3.1515925
例子2:小数点丢失
public class HELLOJAVA {
public static void main(String[] args) {
float f = (float)3.1415926;
int i = (int)f;
System.out.println(i);
}
}
3
例子3:数值越界溢出
public class HELLOJAVA {
public static void main(String[] args) {
byte b = (byte)129;
System.out.println(b);
}
}
-127