1. 程式人生 > >int 和 Integer 有什麼區別。請簡單的寫一段有關自動拆裝箱的程式碼。

int 和 Integer 有什麼區別。請簡單的寫一段有關自動拆裝箱的程式碼。

//1
	Integer a =10;
	Integer a1=10;
	System.out.println(a==a1);//true
	//2 
	Integer b=128;
	Integer b1 = 128;
	System.out.println(b==b1);//false
	//3
	int c=12;
	int c1=12;
	System.out.println(c==c1);//true
	//4 
	int d=210;
	int d1=210;
	System.out.println(d==d1);//true
	//5 
	Integer e = new Integer(11);
	Integer e1 = new Integer(11);
	System.out.println(e==e1);//false
	//6
	int f = 11;
	System.out.println(f==e);//true

integer與int的區別:
1、Java 中的資料型別分為基本資料型別和複雜資料型別
int是前者,integer 是後者(也就是一個類)。
2、初始化時,程式碼如下:
int i = 1;
Integer i = new Integer(1); // (要把integer 當做一個類看)。
int 是基本資料型別(面向過程留下的痕跡,不過是對Java的有益補充)
Integer 是一個類,是int的擴充套件,定義了很多的轉換方法

類似的還有:float Float、double Double、string String等 。

舉個例子:當需要往ArrayList,HashMap中放東西時,像int,double這種基本資料型別是放不進去的,因為容器都是裝object的,這時就需要這些基本資料型別的包裝類了。

int和Integer關係是比較微妙的。關係如下:
1、int是基本的資料型別;
2、Integer是int的封裝類;
3、int和Integer都可以表示某一個數值;
4、int和Integer不能夠互用,因為他們兩種不同的資料型別;

     在Java裡==是比較記憶體地址是否相同,即是否為同一個物件。
     第1、2種情況為了說明Integer與Integer間的比較,從jdk1.5開始,有“自動裝箱”這麼一個機制,在byte(-128到127)範圍內(整型的八位二進位制的表示的範圍為-128到127),如果存在了一個值,再建立相同值的時候就不會重新建立,而是引用原來那個,但是超過byte範圍還是會新建物件,
     第3、4種情況則說明像int這樣的基本型別==只是比較值是否相同
     第5種情況則輸出false,則說明==比較的確實是記憶體地址,Integer物件new出來後存放在堆裡面。
     第6種情況輸出true則說明了自動拆箱機制,即基本資料型別和包裝類物件比較的時候,物件會自動拆箱為基本資料型別再比較,比較的就是裡面的值而不是地址。

相關推薦

int Integer 什麼區別簡單有關自動裝箱程式碼

//1 Integer a =10; Integer a1=10; System.out.println(a==a1);//true //2 Integer b=128; Integer

intInteger什麽區別

機制 microsoft val family jdk1 經歷 ont .com () 可參考:http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html 從Java 5開始引入了自動裝箱/拆

Java基礎之intInteger什麼區別

1 int與Integer的基本使用對比 (1)Integer是int的包裝類;int是基本資料型別;  (2)Integer變數必須例項化後才能使用;int變數不需要;  (3)Integer實際是物件的引用,指向此new的Integer物件;int是直接儲存資料值 ; 

五、intInteger什麼區別

一.基本使用對比 int是基本資料型別,作為成員變數的時候預設值為0。 Integer是int的包裝類,作為成員變數的時候預設值為null。 int不需要例項化可以直接使用,Integer需要例項化以後才可以使用。 int是直接存放數值的,而Integer是對物件的引

int Integer 什麼區別?談談 Integer快取值的範圍

首先int是原始資料型別,在java中有8個這樣的原始資料型別,分別為:int,short,boolean,byte,char,float,double,long。java當中一切皆是物件,但基本資料型別除外。 Integer是int的包裝,它有一個int型別

[厲害了,我的JAVA基礎](四)int Integer 什麼區別Integer的值快取範圍

1 int與integer的基本使用對比 (1)Integer是int的包裝類;int是基本資料型別; (2)Integer變數必須例項化後才能使用;int變數不需要; (3)Integer實際是物件的引用,指向此new的Integer物件;i

int Integer 什麼區別Integer的值快取範圍

目錄 int與Integer的基本使用對比 Integer是int的包裝類;int是基本資料型別; Integer變數必須例項化後才能使用;int變數不需要; Integer實際是物件的

intInteger什麼區別?

    Java是一個近乎純潔的面向物件程式語言,但是為了程式設計的方便還是引入了基本資料型別,但是為了能夠將這些基本資料型別當成物件操作,Java為每 一個基本資料型別都引入了對應的包裝型別(wrapper class),int的包裝類就是Integer,從Java 5開

intInteger什麼區別Integer的值快取範圍

1 int與integer的基本使用對比(1)Integer是int的包裝類;int是基本資料型別; (2)Integer變數必須例項化後才能使用;int變數不需要; (3)Integer實際是物件的引用,指向此new的Integer物件;int是直接儲存資料值 ; (4)I

intInteger什麼區別?談談Integer的值快取範圍

int時我們常說的整形數字,是Java的8中原始資料型別之一.Java語言雖然號稱一切都是物件,但原始資料型別除外. Integer是int對應的包裝類,他又一個int型別的欄位儲存資料,並且提供了基本操作,比如數學運算,int和字串之間轉換等.在JAVA5中,引入了自

int Integer 什麼區別.

1,無論如何,Integer與new Integer不會相等。不會經歷拆箱過程,new出來的物件存放在堆,而非new的Integer常量則在常量池(在方法區),他們的記憶體地址不一樣,所以為false。2,兩個都是非new出來的Integer,如果數在-128到127之間,則

【轉】Java裏面的intInteger區別

之間 assert 默認 out val 就會 java常量池 使用 spa int和Integer的區別 1、Integer是int的包裝類,int則是java的一種基本數據類型 2、Integer變量必須實例化後才能使用,而int變量不需要 3、Integer實際是對象

intInteger區別

() con ger 包裝 -c out vhd 包裝類 fort 1、Integer是int的包裝類,int則是java的一種基本數據類型 2、Integer變量必須實例化後才能使用,而int變量不需要 3、Integer實際是對象的引用,當new一個Integer時,實

Java intInteger區別

body 類型轉換 per 區別 primitive ava ger class ron int是基本類型(Primitive),Integer是引用類型(Wrapper)。int是java的原始數據類型,Integer是java為int提供的封裝類。int的變量不需要實例

java面試題之intInteger區別

4條 試題 als 自動 數據類型 類型 fort spec 新建 int和Integer的區別 1、Integer是int的包裝類,int則是java的一種基本數據類型 2、Integer變量必須實例化後才能使用,而int變量不需要 3、Integer實際是對象的引用,

2.intinteger區別

以前一直沒有思考,為啥要有一個int還要有一個integer。 實際上: 1. Ingeter是int的包裝類,int的初值為0,Ingeter的初值為null; 2.初始化的時候,int i =1;    Integer i= new Integer(1);

intInteger區別 java

int和Integer的區別 java 1、Integer是int的包裝類,int則是java的一種基本資料型別 ; 2、Integer的預設值是null,int的預設值是0; 3、Integer變數必須例項化後才能使用,而int變數不需要 ; 4、Integer實際是物件的引用,當

intInteger區別---之面試常考

int和Integer的區別 1、Integer是int的包裝類,int則是java的一種基本資料型別 2、Integer變數必須例項化後才能使用,而int變數不需要 3、Integer實際是物件的引用,當new一個Integer時,實際上是生成一個指標指向此物件;而int則是直接儲存資

java學習筆記(intInteger區別

int和Integer的區別 1、Integer是int的包裝類,int則是java的一種基本資料型別 2、Integer變數必須例項化後才能使用,而int變數不需要 3、Integer實際是物件的引用,當new一個Integer時,實際上是生成一個指標指向此物件;而int則是直接儲存資料值

java中intinteger區別

1、Integer是int的包裝類,int則是java的一種基本資料型別 2、Integer變數必須例項化後才能使用,而int變數不需要 3、Integer實際是物件的引用,當new一個Integer時,實際上是生成一個指標指向此物件;而int則是直接儲存資料值