Java中有兩類(lèi)表示整型數(shù)值的基本數(shù)據(jù)類(lèi)型:int和Integer。
int是Java中最基本的整型數(shù)據(jù)類(lèi)型。其大小為32位,可以表示-2^31到2^31-1之間的整數(shù)。int類(lèi)型的變量聲明方式為:
int i = 100;
Integer是Java中封裝整型數(shù)值的類(lèi),它是int的包裝類(lèi)。Integer類(lèi)提供了很多有用的方法,包括實(shí)現(xiàn)整數(shù)的比較、轉(zhuǎn)換、最大值/最小值等。使用Integer類(lèi)型的變量聲明方式為:
Integer j = new Integer(100);
在實(shí)際開(kāi)發(fā)中,我們通常會(huì)使用Integer來(lái)代替int類(lèi)型。因?yàn)樵谀承r(shí)候,我們需要用到null值來(lái)代表缺少數(shù)值,而int類(lèi)型不支持null。例如,在傳遞參數(shù)時(shí),當(dāng)參數(shù)所表示的數(shù)據(jù)可能不存在時(shí),我們可以用Integer來(lái)代替int類(lèi)型。而且在某些情況下,需要把整型數(shù)據(jù)類(lèi)型作為對(duì)象處理,此時(shí)也需要使用Integer類(lèi)型。
當(dāng)我們需要對(duì)int類(lèi)型和Integer類(lèi)型進(jìn)行比較時(shí),Java會(huì)自動(dòng)對(duì)Integer類(lèi)型進(jìn)行拆箱操作,把Integer類(lèi)型轉(zhuǎn)換為int類(lèi)型,然后再進(jìn)行比較。如下面的代碼:
Integer var1 = new Integer(150); int var2 = 150; System.out.println(var1 == var2); // 輸出 true
當(dāng)我們需要對(duì)Integer類(lèi)型進(jìn)行運(yùn)算時(shí),Java則會(huì)自動(dòng)對(duì)其進(jìn)行裝箱操作,把Integer類(lèi)型轉(zhuǎn)換為int類(lèi)型,然后再進(jìn)行運(yùn)算。如下面的代碼:
Integer var1 = new Integer(100); Integer var2 = new Integer(50); Integer sum = var1 + var2; // 裝箱操作 System.out.println(sum); // 輸出 150
總體來(lái)說(shuō),int類(lèi)型和Integer類(lèi)型是Java中兩種不同的類(lèi)型,Java不允許在兩種不同類(lèi)型之間直接賦值,但是自動(dòng)裝箱和拆箱機(jī)制使得它們之間的轉(zhuǎn)換非常方便。我們需要根據(jù)實(shí)際需求,靈活選擇使用哪種類(lèi)型。