精度优先级:
byte<short<char<int<long<float<double
在Java语言中,当参与运算的两个变量的数据类型不同时,就需要进行隐式的数据类型转换,转换规则为:由低精度向高精度转换。
-
类型自动转换
char类型转换为高级类型时,会转换成对应的ASCII码 基本类型数据与boolean不能互转 byte、short、char类型在参与运算时自动转换为int,但是当使用+=运算符时却并不会。
-
强制类型转换
就是从高精度转换成低精度,注意,在强制类型转换时可能会损失精度。
要点:
-
Java语言中null值是什么,在内存中又是什么?
null不是一个合法的Object实例,编译器并没有为它分配内存,它用于表明当前变量没有指向任何实例。
-
理解String str = null;
在Java中,变量分为两类,原始值和引用值,原始值存储的是实际的值,引用值存储的是对象的地址。对于String str = null;,它定义了一个引用值,str存放的是String的引用,此处为null。
-
float = 4.5;是错误的,对造成精度损失。
因为4.5默认是double类型的,强制转换成float会造成精度损失。所以要写成float = (float)4.5;或者float = 4.5f;
###