1. 程式人生 > >Integer和new Integer

Integer和new Integer

數據 com tool lba pbo intval keyword 註意 etc

Java code ?
1 2 3 4 5 6 7 8 9 10 public static void main(String[] args) { Integer i1=10; Integer i2=10; Integer i3=new Integer(10); Integer i4=128; Integer i5=128; System.out.println(i1==i2);//true System.out.println(i1==i3);//false System.out.println(i4==i5);//false }



Integer x = 10;//自動裝箱,如果在-128到127之間,則值存在常量池中
Integer y = new Integer(10);//普通的堆中的對象

Java自動裝箱和拆箱定義

Java 1.5中引入了自動裝箱和拆箱機制:

(1)自動裝箱:把基本類型用它們對應的引用類型包裝起來,使它們具有對象的特質,可以調用toString()、hashCode()、getClass()、equals()等方法。

如下:

Integer a=3;//這是自動裝箱

其實編譯器調用的是static Integer valueOf(int i)這個方法,valueOf(int i)返回一個表示指定int值的Integer對象,那麽就變成這樣:

Integer a=3; => Integer a=Integer.valueOf(3);

(2)拆箱:跟自動裝箱的方向相反,將Integer及Double這樣的引用類型的對象重新簡化為基本類型的數據。

如下:

int i = new Integer(2);//這是拆箱

編譯器內部會調用int intValue()返回該Integer對象的int值

註意:自動裝箱和拆箱是由編譯器來完成的,編譯器會在編譯期根據語法決定是否進行裝箱和拆箱動作。

Integer和new Integer