试题
考点

java语言-基本数据类型-装箱和拆箱

面5笔5

请写出运行结果?

Long l1 = 128L;
Long l2 = 128L;

System.out.println(l1 == l2); //1
System.out.println(l1 == 128L); //2

Long l3 = 127L;
Long l4 = 127L;

System.out.println(l3 == l4); //3
System.out.println(l3 == 127L); //4


前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

答:1,false;2, true;3,true;4,true。

对于注释 1 的语句,Long 包装类型常量 cache 为 -128 到 127 之间,所以 l1 和 l2 变量是两个对象,== 比较的是对象的地址,所以打印为 false。

对于注释 2 的语句,由于包装类型在表达式中且表达式中至少有一个不是包装类型,所以 Long l1 == 128L 中 l1 自动拆箱退化为基本类型比较,所以数值比较为 true。

对于注释 3 的语句,Long 包装类型 -128 到 127 之间的值维护在一个常量池中,所以 l3 和 l4 引用同一个对象,故打印 true。

对于注释 4 的语句类似注释 2 语句,所以打印为 true。

文章链接

评论
暂无评论

加载更多