目录
程序的运行,有时涉及到类型的转化,类型的转化涉及到自动类型转化和强制类型转化。
1、自动类型转换
自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型,如下图,红色实线表示无数据丢失的自动类型转换,而蓝色虚线表示在转换时可能会有精度的损失。
这里的容量并不是指占用字节数的大小,而是指数值的表示范围的,那同样是占用4个字节的int类型和float类型,为何float类型的容量要比int类型的大,这就看float类型在低层的表示https://blog.csdn.net/lgl782519197/article/details/89878900。
特例:
1、可以将整型常量直接赋值给byte、short、char等类型,而不需要进行强制类型转换,只要不超出其表数范围即可。
public class TestAutomaticTypeConversion {
/**
* @param args
*/
public static void main(String[] args) {
byte byte1 = 50;
short short1 = byte1;
System.out.println("byte转short----------------------------");
System.out.println("byte1="+byte1); //50
System.out.println("【short1 = byte1】short1="+short1);//50
System.out.println("【short1 == byte1】="+(short1 == byte1));//true
char char1 = 'a';
int int1 = byte1;
System.out.println("byte转int----------------------------");
System.out.println("byte1="+byte1); //50
System.out.println("【int1 = byte1】int1="+int1);//50
System.out.println("【int1 == byte1】="+(int1 == byte1));//true
int1 = short1;
System.out.println("short转int----------------------------");
System.out.println("short1="+short1); //50
System.out.println("【int1 = short1】int1="+