2013-05-30 725 views
1

intInteger之間的區別是什麼。是的,一個是primitive,另一個是wrapper,正確使用它們的情況是什麼。int和Integer之間的區別

而且之間有什麼區別:

int i=0; 
++i 
and 
i++ 
+0

'++ i'是前綴增加器,它將'1'加1並返回新值。 'i ++'是後綴增量器,它返回'i'的值,然後給'i'加1。 – jonhopkins

+0

查看http://stackoverflow.com/questions/16460879/java-prefix-postfix-issue/16461035 ++ i和i ++ – nakosspy

+1

在兩個不同的問題中提出兩個不同的問題。並使標題具有描述性。 – Raedwald

回答

6

部分1

一個例子..你可以使用IntegerHashMap的關鍵,但你不能使用int。因爲需要Object

所以,你需要一個int價值作爲一個對象,你需要使用Integer類。

部2

++ i是預增量 i ++在是後增量

例如

i = 0; 
System.out.println(i++) //will print 0 then the i will be 1. 

i = 0; 
System.out.println(++i) // here i wil be incremented first then print 1. 
1

Integer是一個對象,而一個int是一個原始的。所以你可以有一個空引用IntegerSetList他們。你不能這樣做,int

3

Integerint的包裝類,它是一種原始數據類型。當int不能滿足時使用Integer。例如:在泛型中,泛型類,方法或變量的類型不能接受原始數據類型。在這種情況下,Integer來救援。

List<int> list; //Doesn't compiles 
List<Integer> list; // Compiles 

而且Integer自帶的靜態方法多如牛毛,像toBinaryStringtoHexStringnumberOfLeadingZeros等,可將非常方便。

2

如上所述 Integer是一個對象,而int是一個基元。所以你可以對Integer和Set或者它們的列表有一個空引用。你不能這樣做int

我發現這個空引用非常有用,當我必須在數據庫中存儲int值。當我使用Integer時,我可以存儲空值。但是當我使用int時不能這樣做。

1

一個基本的解釋是一個int是一種原始數據類型,並且實際上只是一個存儲在內存中的值。 Integer是一個Java對象,它將int包裝在一個類中,並且有許多很好的/有用的方法,可以調用該方法來處理內部隱藏的支持int。這與大多數基本數據類型相同,例如booleanBoolean,charCharacter等。這被稱爲Boxing原始。拆箱正好相反,拿一個對象並提取支持原型。

這裏的

String someString = "10"; 
Integer intObj = Integer.parseInt(someString); 
System.out.println(intObj.toString()); 

你會發現,一些數據類型的比別人有更多有用的方法之一可以如何使用IntegerString轉換成int(盒裝到Integer)的一個例子。檢查你感興趣的每種類型的JavaDoc,這裏有很多好東西!

相關問題