Java 中自動裝箱整數物件的比較\n
當我們將 int 分配給 Integer 物件時,它首先轉換為 Integer 物件,然後分配。此過程稱為自動裝箱。但在使用 == 運算子比較此類物件時,您應考慮某些事項。請首先參閱下面的示例。
示例
public class Tester {
public static void main(String[] args) {
Integer i1 = new Integer(100);
Integer i2 = 100;
//Scenario 1:
System.out.println("Scenario 1: " + (i1 == i2));
Integer i3 = 100;
Integer i4 = 100;
//Scenario 2:
System.out.println("Scenario 2: " + (i3 == i4));
Integer i5 = 200;
Integer i6 = 200;
//Scenario 3:
System.out.println("Scenario 3: " + (i5 == i6));
Integer i7 = new Integer(100);
Integer i8 = new Integer(100);
//Scenario 4:
System.out.println("Scenario 4: " + (i7 == i8));
}
}輸出
Scenario 1: false Scenario 2: true Scenario 3: false Scenario 4: false
方案 1 - 建立兩個 Integer 物件。第二個是因為自動裝箱。== 運算子返回 false。
方案 2 - 自動裝箱後只建立一個物件,並將其快取起來,因為如果值為 -127 到 127,Java 會快取物件。== 運算子返回 true。
方案 3 - 由於自動裝箱建立了兩個 Integer 物件,並且未進行快取。== 運算子返回 false。
方案 4 - 建立兩個 Integer 物件。== 運算子返回 false。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP