天天看點

Java常用類(3)- 包裝類

包裝類概述

什麼是包裝類

  • 基本資料類型所對應的引用類型
  • Object可統一所有資料,包裝類的預設值是null
Java常用類(3)- 包裝類

裝箱和拆箱

  • 基本類型轉換為引用類型為裝箱
  • 引用類型轉換為基本類型為拆箱
package commonclass.packingclass;

public class Demo01 {
    public static void main(String[] args) {
        //類型轉換:裝箱,基本類型轉成引用類型的過程
        int age = 18;
        //int使用Integer類建立對象
        //方式一:
        Integer integer = new Integer(age);
        //方式二:
        Integer integer1 = Integer.valueOf(age);

        //類型轉換:拆箱,引用類型轉換成基本類型
        Integer integer2 = new Integer(100);
        int age1 = integer2.intValue();

        //👆jdk1.5之前,了解
        //👇jdk1.5之後,提供自動拆箱裝箱
        int num = 30;
        //自動裝箱,把基本類型賦給引用類型
        Integer integer3 = num;
        //自動拆箱,把引用類型賦給基本類型
        int num1 = integer3;
    }
}      

基本類型和字元串轉換

8種包裝類提供不同的類型間轉換方式:

  • Number父類中提供的6個共性方法
Java常用類(3)- 包裝類
  • parseXXX()靜态方法
  • valueOf()靜态方法,把基本類型轉換為引用類型
package commonclass.packingclass;

public class Demo01 {
    public static void main(String[] args) {
        //基本類型和字元串之間轉換

        //1 基本類型轉成字元串
        int n1 = 100;
        //1.1 使用+号
        String s1 = n1 + "aa";
        System.out.println(s1);
        //1.2 之後使用Integer中的toString()方法
        String s2 = Integer.toString(n1);
        System.out.println(s2);

        //2 字元串轉換為基本類型
        String str = "150";
        int n2 = Integer.parseInt(str);
        System.out.println(str);

        //3 補充:boolean字元串形式轉換成基本類型。“true”---->true  非“true”---->false
        String str2 = "true";
        boolean b1 = Boolean.parseBoolean(str2);
        System.out.println(b1);
        String str3 = "qwert";
        boolean b2 = Boolean.parseBoolean(str3);
        System.out.println(b2);
    }
}      
Java常用類(3)- 包裝類
Java常用類(3)- 包裝類
Java常用類(3)- 包裝類

整數/Integer緩沖區

  • Java預先建立了256個常用的整數包裝類型對象
package commonclass.packingclass;

public class Demo02 {
    public static void main(String[] args) {
        //面試題
        Integer integer = new Integer(100);
        Integer integer1 = new Integer(100);
        System.out.println(integer==integer1);
        //false     :比較的是棧中的位址;調用的是構造方法


        Integer integer2 = 100;//自動裝箱
        Integer integer3 = 100;
        System.out.println(integer2==integer3);
        //true      :将基本類型賦給引用類型,自動裝箱;棧中的integer通路的都是堆中的100;調用的是valueOf()方法存放在堆中的緩沖區
        /*👇過程
        Integer integer2 = 100----->Integer integer2 = Integer.valueOf(100)
        Integer integer3 = 100----->Integer integer3 = Integer.valueOf(100)
         */

        Integer integer4 = 200;//自動裝箱
        Integer integer5 = 200;
        System.out.println(integer4==integer5);
        //false     :valueOf的範圍是-128到127,不在範圍之内的會重新new一個,是以比較的是棧中的位址
    }
}      
Java常用類(3)- 包裝類
Java常用類(3)- 包裝類

繼續閱讀