1. 程式人生 > >已經有int了,為什麼要用integer?

已經有int了,為什麼要用integer?

int是JAVA八大基本資料型別(byte,shor,int,long,char,boolean,float,double)之一。

JAVA語言為八大基本資料提供了包裝類,Integer對應是int型別的包裝類,就是把int型別包裝成Object物件。  

Java有2種不同的型別:引用型別和原始型別。Int是java的原始資料型別,Integer是java的為int提供的封裝類。Java為每個原始型別提供了封裝類。  

int是基本資料型別Integer是int的一個包裝類(wrapper),他是類不是基本資料型別,他的內部其實包含一個int型的資料那為什麼要用Integer呢,主要是因為面向物件的思想,因為Java語言是面向物件的,這也是它只所以流行的原因之一,物件封裝有很多好處,可以把屬性也就是資料跟處理這些資料的方法結合在一起,比如Integer就有parseInt()等方法來專門處理int型相關的資料,另一個非常重要的原因就是在Java中絕大部分方法或類都是用來處理類型別物件的,如ArrayList集合類就只能以類作為他的儲存物件,而這時如果想把一個int型的資料存入list是不可能的,必須把它包裝成類,也就是Integer才能被List所接受。所以Integer的存在是很必要的。  

原始資料型別引用資料型別  booleanBoolean  charCharacter  byteByte  shortShort  intInteger  longLong  floatFloat  doubleDouble  引用型別和原始型別的行為完全不同,並且它們具有不同的語義。引用型別和原始型別具有不同的特徵和用法,它們包括:大小和速度問題,這種型別以那種型別的資料結構儲存,當引用型別和原始型別用作某個類的例項時所指定的預設值。物件引用例項變數的預設值為null,而原始型別例項變數的預設值與它們的型別有關。  

Integer類的使用方法

1、屬性。staticintMAX_VALUE:返回最大的整型數;staticintMIN_VALUE:返回最小的整型數;staticClassTYPE:返回當前型別。例子程式碼:System.out.println("Integer.MAX_VALUE:"+Integer.MAX_VALUE);結果為:Integer.MAX_VALUE:2147483647 

2、建構函式。Integer(intvalue):通過一個int的型別構造物件;Integer(Strings):通過一個String的型別構造物件;例子程式碼:Integeri=newInteger("1234");生成了一個值為1234的Integer物件。  

3、方法。說明:1.所有方法均為public;2.書寫格式:[修飾符] 如:staticintparseInt(Strings)表示:此方法(parseInt)為類方法(static),返回型別為(int),方法所需引數為String型別。1.byteValue():取得用byte型別表示的整數;2.intcompareTo(IntegeranotherInteger):比較兩個整數。相等時返回0;小於時返回負數;大於時返回正數。例子程式碼:Integeri=newInteger(1234);System.out.println("i.compareTo:"+i.compareTo(newInteger(123)));結果為:i.compareTo:13.intcompareTo(Objecto):將該整數與其他類進行比較。如果o也為Integer類,進行方法2的操作;否則,丟擲ClassCastException異常。

4.staticIntegerdecode(Stringnm):將字串轉換為整數。

5.doubledoubleValue():取得該整數的雙精度表示。

6.booleanequals(Objectobj):比較兩個物件。

7.floatfloatValue():取得該整數的浮點數表示。

8.staticIntegergetInteger(Stringnm):根據指定名確定系統特徵值。

9.staticIntegergetInteger(Stringnm,intval):上面的過載。

10.staticIntegergetInteger(Stringnm,Integerval):上面的過載。

11.inthashCode():返回該整數型別的雜湊表碼。

12.intintValue():返回該整型數所表示的整數。

13.longlongValue():返回該整型數所表示的長整數。

14.staticintparseInt(Strings):將字串轉換成整數。s必須是時進位制陣列成,否則丟擲NumberFormatException異常。

15.staticintparseInt(Strings,intradix):以radix為基數radix返回s的十進位制數。所謂的基數就是“幾進位制”。例子程式碼:Strings1=newString("1010");System.out.println("Integer.parseInt(Strings,intradix):"+Integer.parseInt(s1,2));結果為:Integer.parseInt(Strings,intradix):10即s1在此例中被看成是二進位制,返回十進位制就是10。

16.shortshortValue():返回該整型數所表示的短整數。

17.staticStringtoBinaryString(inti):將整數轉為二進位制數的字串。

18.staticStringtoHexString(inti):將整數轉為十六進位制數的字串。

19.staticStringtoOctalString(inti):將整數轉為八進位制數的字串。

20.StringtoString():將該整數型別轉換為字串。

21.staticStringtoString(inti):將該整數型別轉換為字串。不同的是,此為類方法。

22.staticStringtoString(inti,intradix):將整數i以基數radix的形式轉換成字串。例子程式碼:inti1=54321;System.out.println("Integer.toString(inti,intradix):"+Integer.toString(i1,16));結果為:Integer.toString(inti,intradix):d431

23.staticIntegervalueOf(Strings):將字串轉換成整數型別。

24.staticIntegervalueOf(Strings,intradix):將字串以基數radix的要求轉換成整數型別。

總的來說,

Integer是int的包裝類,java中所有簡單型別都有包裝類,另一方面,由包裝類建立的物件中繼承了包裝類中的所有方法,用程式碼說明

  程式碼中i1中是沒有任何方法的,而由包裝類Integer建立的物件自身擁有裡面的所有方法。

(注:以上內容來自百度回答,本人僅用於收集便於日後查詢溫習,原連結https://zhidao.baidu.com/question/1243955905956588219.html 和連結https://zhidao.baidu.com/question/392090753424431445.html?qbl=relate_question_0&word=%D7%AA%B3%C9Integer%B5%C4%BA%C3%B4%A6