可能重复:
java中允许的Integer == int
以下两个陈述之间有什么区别
Long l1 = 2L;
if(l1 == 2)
System.out.println("EQUAL");
if(l1.longValue() == 2)
System.out.println("EQUAL");
Run Code Online (Sandbox Code Playgroud)
他们两个都给出了相同的结果"EQUAL".但我怀疑龙是对象.它是如何平等的?
Xav*_*ica 11
正如评论中已经指出的那样
if(l1 == 2)
Run Code Online (Sandbox Code Playgroud)
Long l1自动取消装箱到其原始类型,long.所以比较是在long和之间int.
在第二种情况下,l1.longValue()将返回由对象表示的long值作为基元,因此比较将在和之间再次进行.回答你的评论,看一下原始类型和包装类之间的主要区别是什么?LongLonglongint
关于自动装箱的评论中给出的链接很好地涵盖了这个主题.
| 归档时间: |
|
| 查看次数: |
47145 次 |
| 最近记录: |