他們有著本質上的區別。
Integer.valueof(String s)是將一個數字的字串包裝成物件。
它是將一個實際值為數字的變量先轉成string型,
再將它轉成Integer型的包裝類別(相當于轉成了int的類別)這樣轉完的物件就具有方法和屬性了。
而Integer.parseInt(String s)只是將是數字的字串轉成數字,
注意,他返回的是int型變量,不具備方法和屬性。
至於程式返回值為甚麼都可以用int來接收呢?
例如:
int aaa=Integer.parseInt(ccc);
int bbb=Integer.valueOf(ccc);
這是因為 Integer 和 int 可以自動轉換。
Integer i = 5; int k= i; //像這樣表示是沒有編譯錯誤的
另外要注意的是
new Integer.valueof().intValue();
返回的也是一个int的值。
而
static Integer valueOf(int i)
返回的是一個表示指定的 int 值的 Integer 物件。
static Integer valueOf(String s)
返回的是保持指定的 String 的值的 Integer 物件。
參考:
http://zhidao.baidu.com/question/22561536.html
http://www.itkhl.com/Article/xtyh/itkhl-425.html
http://zhidao.baidu.com/question/71207432.html?fr=qrl&fr2=query