栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

比较Integers与==到底有什么作用?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

比较Integers与==到底有什么作用?

Integer i1 = 1;Integer i2 = new Integer(1);System.out.println(i1 == i2);

当您为该

i1
值分配1时,将装箱,创建一个
Integer
对象。然后比较比较两个对象引用。引用不相等,因此比较失败。

Integer i1 = 100;Integer i2 = 100;System.out.println(i1 != i2);

因为这些都是用编译时常量初始化的,所以编译器可以并且确实将它们进行内插,并使两者都指向同一

Integer
对象。

(请注意,我将值从1000更改为100。正如@NullUserException指出的那样,仅会插入小整数。)


这是一个非常有趣的测试。看看是否可以解决这个问题。为什么第一个程序打印

true
,而第二个程序打印
false
?使用装箱和编译器时间分析的知识,您应该能够弄清楚这一点:

// Prints "true".int i1 = 1;Integer i2 = new Integer(i1);System.out.println(i1 == i2);// Prints "false".int i1 = 0;Integer i2 = new Integer(i1);i1 += 1;System.out.println(i1 == i2);

如果您了解上述内容,请尝试预测该程序的输出:

int i1 = 0;i1 += 1;Integer i2 = new Integer(i1);System.out.println(i1 == i2);

(猜测之后,运行它即可查看!)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496991.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号