先看**:
integer a = new
integer(1);
integer a2 = new
integer(1);
integer c = 1;
integer c2 = 1;
int d = 1;
integer e = 128;
integer e1 = 128;
system.out.println(a==a2);//false
system.out.println(c==c2);//true
system.out.println(a==c);//false
system.out.println(c==d);//true
system.out.println(e==e1);//false
==
比較原則:
1. 有new關鍵字時,一定是開闢乙個新的記憶體,所以a==a2
返回false
2. integer使用自動裝箱(integer i = 1)時,建立的物件的值在-128-127之間,使用了快取,如果兩個值相等時,位址必然是一樣的,所以c==c2
返回true
3.自動裝箱與new建立出的物件不是同一片位址,所以a==c
返回false
4. 引用型別與值型別想比較是必然是相等的所以c==d
返回true
5. integer使用自動裝箱時,建立的物件超過127時,沒有使用快取,所有裝箱建立出的物件不相等。e==e1
返回false
java之Integer知識整理
最近本人在看jdk源 的時候很有感觸,感嘆 是如此的精煉。就好比說這個最容易被忽視的integer。integer是對int 型別的封裝,這點大家都知道。今天我嘗試來分析其部分本人認為比較有意思的源 public static int highestonebit int i 解析 因為int型別是4...
java基礎之Integer類總結
integer類基本型別int的封裝類,是不可變類。該類提供了很多與int相互轉換的方法。int型別32位,因此它有最小值 2 31 2147483648 和最大值 2 31 1 2147483647 在integer類中有個內部類快取類 integer型別將8位的整數 128 127 看作是常用數...
java基礎之Integer包裝類
integer類概述 integer 類在物件中包裝了乙個基本型別 int 的值 該類提供了多個方法,能在 int 型別和 string 型別之間互相轉換,還提供了處理 int 型別時非常有用的其他一些常量和方法 構造方法 public integer int value public intege...