有如下4条语句: Interger i01=59; int i02=59; Integer i03 = Integer.valueOf(59); Interger i04= new Integer(59); 以下输出结果为false的是
时间: 2023-12-06 14:02:24 浏览: 70
JAVA Integer类型自加实例详解
下面的语句输出结果为false:
```java
Integer i01 = 59;
int i02 = 59;
Integer i03 = Integer.valueOf(59);
Integer i04 = new Integer(59);
System.out.println(i01 == i02);
System.out.println(i01 == i03);
System.out.println(i01 == i04);
```
解释:
- 第一条语句比较的是 `i01` 和 `i02`,`i01` 是 `Integer` 类型,而 `i02` 是基本数据类型 `int`。在进行比较时,会自动拆箱将 `i01` 转换为 `int` 类型,因此比较的是两个基本数据类型的值,结果为true。
- 第二条语句比较的是 `i01` 和 `i03`,两者都是 `Integer` 类型。在这种情况下,会比较两个对象的引用地址,而不是值。虽然它们的值相同,但是它们是两个不同的对象,因此结果为false。
- 第三条语句比较的是 `i01` 和 `i04`,`i04` 是使用 `new Integer()` 创建的一个新的 `Integer` 对象,而 `i01` 是通过自动装箱创建的。虽然它们的值相同,但是它们是两个不同的对象,因此结果为false。
阅读全文