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

Java Long数据类型比较

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

Java Long数据类型比较

Long
是一个对象,而不是原始对象。通过使用
==
您正在比较 参考值

您需要做:

if(str.equals(str2))

正如您在第二次比较中所做的那样。

编辑: 我明白了…您正在考虑其他对象的行为就像

String
文字。他们不*。即使如此,你永远要使用
==
String
任何文字。

(* Autobox类型确实实现了flyweight模式,但仅适用于-128->
127值。如果将其

Long
设为等于,则
50
实际上将有两个对同一个flyweight对象的引用。同样, 永远不要使用== 来比较它们。)

编辑添加:
Java语言规范第5.1.7节中专门说明了这一点:

如果装箱的值p为true,false,字节或 u0000到
u007f范围内的char或-128到127(含)之间的整数或短数,则令r1和r2为结果p的任何两次拳击转换。r1 == r2总是这样。

请注意,

long
没有 明确提及,但目前甲骨文和OpenJDK的实现方式做到这一点(1.6和1.7),这是另一个原因 从未
使用
==

Long l = 5L;Long l2 = 5L;System.out.println(l == l2);l = 5000L;l2 = 5000L;System.out.println(l == l2);

输出:




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

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

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