public class IntegerVsInt {
public static void main(String args[])
{
int a = 1;
int b = 1;
int c = a + b;
System.out.println(c);
System.out.println(a == b);
Integer x = 1;
Integer y = 1;
Integer z = x + y;
System.out.println(z);
System.out.println(x == y);
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我将比较两个int和两个integer类型的对象.
比较两个int时
a == b
Run Code Online (Sandbox Code Playgroud)
我希望他们的价值观能够进行比较.
但是当你比较两个Integer时
x == y
Run Code Online (Sandbox Code Playgroud)
我希望比较两个对象的地址,然后返回false.
我在两种情况下都是真的吗?为什么会这样?
==正在测试整数是否是同一个对象.在java中,需要缓存某些小值,并且可以选择缓存其他值,这就是== Object引用求值为true的原因.
如果被装箱值p为真,假,字节,或在范围\ u0000的一个char到\ u007f,或int或-128和127(含)之间的短号码,然后让r1和r2是的结果p的任何两个拳击转换.始终是r1 == r2的情况.
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |