Java-API-基本資料型別包裝類

The Flying pig發表於2020-12-17

Java-API-基本資料型別包裝類

什麼是API?

API,application programming interface,應用程式程式設計介面。

​ java api是java提供的一些預定義函式,目的是提供應用程式與開發人員基於某軟體或硬bai件的以訪問一組例程的能力,而又無需訪問原始碼,或理解內部工作機制的細節。

​ JAVA API文件提供了很多官方的介紹和類、方法、變數的解釋。一般很系統,涉及所有的方面,如果開發人員對正在使用的類不熟悉,想檢視類裡面的變數或者方法,就可以開啟JavaAPI文件進行閱讀和檢視。

​ 很多開發語言都提供了官方的API文件,可以讓開發人員迅速地提高能力。

​ 對java預先定義的類或介面 功能 和方法功能的說明文件,目的是提供給開發人員進行使用幫助說明。

基本資料型別包裝類

​ Java語言是一個物件導向的語言,但是Java中的基本資料型別卻是不物件導向的,這在實際使用時存在很多的不便,為了解決這個不足,在設計類時為每個基本資料型別設計了一個對應的類進行代表,這樣八個和基本資料型別對應的類統稱為包裝類。

基本資料型別包裝類對應包裝類包裝類的父類
booleanBooleanjava.lang.Booleanjava.lang.Object
byteBytejava.lang.Bytejava.lang.Number
shortShortjava.lang.Shortjava.lang.Number
intIntegerjava.lang.Integerjava.lang.Number
longLongjava.lang.Floatjava.lang.Number
floatFloatjava.lang.Doublejava.lang.Number
doubleDoublejava.lang.Doublejava.lang.Number
charCharacterjava.lang.Characterjava.lang.Object

基本型別和物件型別

基本型別與物件型別最大的不同點在於,基本型別基於數值,物件型別基於引用

基本型別的變數在棧的區域性變數表中直接儲存的具體數值,而物件型別的變數則儲存的堆中引用。

顯然,相對於基本型別的變數來說,物件型別的變數需要佔用更多的記憶體空間

上面說到,基本型別基於數值,所以基本型別是沒有類而言的,是不存在類的概念的,也就是說,變數只能儲存數值,而不具備運算元據的方法。物件型別則截然不同,變數實際上是某個類的例項,可以擁有屬性方法等資訊,不再單一的儲存數值,可以提供各種各樣對數值的操作方法,但代價就是犧牲一些效能並佔用更多的記憶體空間。

使用方法

  • 靜態方法valueOf()

    引數為基本資料型別,返回包裝類物件。

    引數為String型別字串,返回包裝類物件。

    public void a() {
    	/*1.引數為基本資料型別		
    	 * 作用:將基本資料型別轉換為對應包裝類 * */
    		Integer i=Integer.valueOf(10);
    		System.out.println(i);//輸出10
    	
    	/*2.引數為String字串時,
    	 * 作用:返回指定字串值的包裝類物件
    	 * 	*/
    		Integer a=Integer.valueOf("100");
    		System.out.println(a);//輸出100
    		
    		Integer b=Integer.valueOf("100a")為
    		System.out.println(b);//執行錯誤,字串的值不少一個int型別的
    		
    }
    
  • 靜態方法parsexxx(String xxx)

    Character類沒有該方法

    作用:將字串換為對應的基本資料型別(和上邊的valueOf不同)

    public void b() {
    		/*作用:將給定字串裝換為對應的基本資料型別
    		 * 前提是該字串必須正確描述該基本資料型別表示的值*/
    		int a=Integer.parseInt("100");
    		System.out.println(a);//輸出100
    		
    		int b=Integer.parseInt("100a");
    		System.out.println(b);//執行錯誤,字串的值不為int型別
    				
    }
    
  • 非靜態方法xxxValue()

    作用:將當前包裝類轉換為對應的基本資料型別

    陣列類的包裝類才有該方法

    public void c() {
    		/*作用:將包裝類物件轉換為對應的基本資料型別*/
    		
    		Integer a=Integer.valueOf(100);//將基本資料型別轉換為包裝類物件
    		int b=a.intValue();//將包裝類物件轉換為對應的基本資料型別
    		System.out.println(b);//輸出100
    }
    
  • 自動裝箱與拆箱

    裝箱

    自動將基本資料型別轉換為包裝器型別
    裝箱的時候自動呼叫的是Integer的valueOf(int)方法

    拆箱

    自動將包裝器型別轉換為基本資料型別
    拆箱的時候自動呼叫的是Integer的intValue方法

public void d() {
		/*自動裝箱:valueOf*/
	Integer i=123;//原理是 Integer i=Integer.valueOf(123);	
		/*自動拆箱*/
	int i1=i+1;//原理是	int i1=i.intValue()+1;
	
	Integer a=123;
	Integer b=123;
	Integer c=a+b;
	/*原理為Integer c=Integer.valueOf(a.intValue()+b.intValue());*/
}

包裝類的常用方法和常量

  • Integer.MIN_VALUE:int型別的最小值:-2^31。

  • int Integer.parseInt(String sInteger);

    作用:將字串型別的整數轉換為int型別的資料。

  • String Integer.toBinaryString(int value);

    作用:將十進位制數轉換為二進位制,返回結果String型別。

  • String Integer.toHexString(int value);

    作用:將十進位制數轉換為十六進位制,返回結果String型別。

程式碼演示

public class DemoTest1 {
    //獲取byte型別的最大、最小值,並測試Byte.parseByte方法
    public static void main(String[] args) {
        System.out.println(Byte.MAX_VALUE);
        System.out.println(Byte.MIN_VALUE);

        byte a = Byte.parseByte("123");
        System.out.println(a);
    }

}
public class DemoTest1 {
    //獲取byte型別的最大、最小值,並測試Byte.parseByte方法
    public static void main(String[] args) {
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);

        int a = Integer.parseInt("1223456");
        System.out.println(a);

        String b = Integer.toBinaryString(1234567);
        System.out.println(b);//轉換2進位制

        String c = Integer.toBinaryString(12);
        System.out.println(c);//轉換2進位制

        String d = Integer.toHexString(34);
        System.out.println(d);//轉換16進位制
    }

}
    /*執行結果-2147483648
    1223456
    100101101011010000111
    1100
    22*/

相關文章