天天看點

Java學習之路(二十六)| 包裝類一、包裝類的分類二、包裝類和基本資料類型轉換三、包裝類<–>String

一、包裝類的分類

包裝類是針對八種基本資料類型相應的引用類型。

基本資料類型 包裝類
char Character
int Integer
boolean Boolean
byte Byte
short Short
long Long
float Float
double Double
Java學習之路(二十六)| 包裝類一、包裝類的分類二、包裝類和基本資料類型轉換三、包裝類<–>String
Java學習之路(二十六)| 包裝類一、包裝類的分類二、包裝類和基本資料類型轉換三、包裝類<–>String
Java學習之路(二十六)| 包裝類一、包裝類的分類二、包裝類和基本資料類型轉換三、包裝類<–>String

二、包裝類和基本資料類型轉換

裝箱與開箱的了解:

package wrapper;

public class Integer01 {
    public static void main(String[] args) {
        int n1=100;
        //手動裝箱
        Integer integer=new Integer(n1);
        Integer integer1=Integer.valueOf(n1);

        //手動拆箱
        int i=integer.intValue();//100

        //jdk5後可以自動裝箱和拆箱
        int n2=200;
        Integer integer2=n2;//自動裝箱  int-->Integer  底層用的是Integer.valueOf(n2)
        int n3=integer2;//自動拆箱  Integer-->int  底層仍然用的是intValue()方法

    }
}
           

總結:用基本資料類型int給一個類指派就是裝箱。

經典面試題1:

Object obj1=true?new Integer(1):new Double(2.0);
		//三目運算符,條件為真選擇冒号前,因為冒号後面的最高精度為double,是以會提高精度,輸出為1.0
        System.out.println(obj1);//1.0
        
        Object obj2;
        if(true){
            obj2=new Integer(1);
        }else{
            obj2=new Double(2.0);
        }
        System.out.println(obj2);//1
           

經典面試題2:

兩個對象==比較的是位址。

public void method(){
		Integer i = new Integer(1);
		Integer j = new Integer(1);
		System.out.println(i==j);//False
		/*
		 *new出來的都是新的對象,比較兩個不同的對象傳回的是False
		*/
		
		Integer m=1;
		Integer n=1;
		System.out.println(m==n);//True
		//直接用int資料向Integer對象指派分兩種情況:
		//1.指派的數範圍是-128~127,指派的是相同的位址值,在類加載的時候自動建立了一個數組。
		//2.指派的數範圍位于-128~127之外,編譯器自動建立新的對象。

		Integer x=128;
		Integer y=128;
		System.out.println(x==y);//False,兩個不同的對象
}
           

經典面試題2(錯題):

隻要有基本資料類型,判斷的是值是否相同。

Integer i11=127;
		int i12=127;
		System.out.println(i11==i12);//True
		
		Integer i13=128;
		int i14=128;
		System.out.println(i13==i14);//True

		//隻要有基本資料類型,判斷的是值是否相同。
           

三、包裝類<–>String

//包裝類(Integer)-->String
	Integer i=100;//自動裝箱
	String str1=i+"";
	String str2=i.toString();
	String str3=String.valueOf(i);//


	//String --> 包裝類(Integer)
	String str4="12345";
	Integer i2=Integer.parseInt(str4);//parseInt傳回值類型為int
	Integer i3=new Integer(str4);//構造器