Java 提供兩種不同的型別:引用型別和原始型別(或內建型別)。另外,Java 還為每個原始型別提供了封裝類(Wrapper)。

原始型別 封裝類
=================
boolean Boolean
char    Character
byte    Byte
short   Short
int     Integer
long    Long
float   Float
double  Double

int i = 5;                       // 原始型別
Integer j = new Integer(10);     // 物件引用

//java 1.5以後支援自動裝箱所以

Integer j = 10; 也可以

使用原始型別無須呼叫 new,也無須建立物件。這節省了時間和空間。混合使用原始型別和物件也可能導致與賦值有關的意外結果。

原始型別是類

引用型別是物件

原始型別大小比較用"=="

引用型別大小比較用"equals"

引用型別可以被序列化,原始型別不行。
引用型別提供的方法可以靈活轉換,可以擴充套件,原始型別不行
在集合類中只能使用引用型別,不能使用原始型別
原始型別沒有null的概念,引用型別有,某些情況下需要辨別某個引數是否被初始化了,如果使用原始型別,那麼0的值不知道是初始值還是沒有初始化系統自動給的。
有些時候必須要用封裝類,比如你要用
request.setAttribute(String key ,Object value);這個方法時,第二個引數為Object型別 ,而你要放的是一個整數的時候,那就只能放Integer不能放int。

--摘自《無盡空虛的部落格http://blog.sina.com.cn/lonely2009 》