Java知识点
1、修饰符之间的访问范围
2、类型转换
byte , short , int , long , fload , double
作比较的时候会自动向上转型, 向下转型的时候则需要强转!
例:哪些选项执行后是true的:
class CompareReference{
public static void main(String [] args){
float f=42.0f;
float f1[]=new float[2];
float f2[]=new float[2];
float[] f3=f1;
long x=42;
f1[0]=42.0f;
}
}
A.f1==f2
B.x==f1[0]
C.f1==f3
D.f2==f1[1]
解析:BC正确
f1、f2、f3是数组,是引用类型,f、x是基本类型。基本类型之间的比较,应该会将低精度类型自动转为高精度类型再比较。
B选项:x == f1[0] ,x是long类型,与float类型对比属于低精度,所以x要向高精度的float类型转型再比较,故相等;
C选项:f1 == f3,f3没有new创建,而是由f1赋值,所以f3地址是指向f1的,f1值改变,相当于改变f3值,所以相等。