从源码看int和Integer的面试题

int是一种基本数据类型,Integer是一个对象,需要实例化才能使用。它对int进行了包装,在Integer内部有一个对应的数值int变量。

private final int value;

intInteger的对比,经常被拿来作为面试题,下面就多种情况,通过源码分析其结果。我们将比较“==”Equals两种结果。

  • 第一种情况:
Integer i1 = new Integer(10);
Integer i2 = new Integer(10);
System.out.println("i1==i2 is " + (i1 == i2));
System.out.println("i1 equal i2 is " + (i1.equals(i2)));


i1==i2 is false
i1 equal i2 is true

这种情况是通过new关键字创建Integer对象,参数值一样。内部的int类型的value变量会保存参数值。

public Integer(int value) {
    this.value = value;
}

既然Integer是对象,那么“==”是要判

猜你喜欢

转载自blog.csdn.net/bdmh/article/details/104474639