int vs Integer比较Java [英] int vs Integer comparison Java

查看:178
本文介绍了int vs Integer比较Java的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

class datatype1
{

    public static void main(String args[])
    {
    int i1 = 1;
    Integer i2 = 1;
    Integer i3 = new Integer(1);

    System.out.println("i1 == i2"+(i1==i2));
    System.out.println("i1 == i3"+(i1==i3));
    System.out.println("i2 == i3"+(i2==i3));
}

}

输出

i1 == i2true
i1 == i3true
i2 == i3false

有人可以解释为什么我在比较i2和i3时会出错吗?

Can someone explain why I get false when comparing i2 and i3 ?

推荐答案

i1 == i2

结果< a href =http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html\"rel =noreferrer> un-boxing 并进行常规的int比较。 (参见 JLS 5.6中的第一点) .2

results in un-boxing and a regular int comparison is done. (see first point in JLS 5.6.2)

i2 == i3 

导致参考比较。请记住, i2 i3 是两个不同的对象。 (参见 JLS 15.21.3

results in reference comparsion. Remember, i2 and i3 are two different objects. (see JLS 15.21.3)

这篇关于int vs Integer比较Java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆