1. 程式人生 > >基本類型和包裝類

基本類型和包裝類

pack 默認值 per 隱式 public 基本 ole pub string

包裝類的產生就是為了解決基本數據類型沒有屬性,方法,不能對象化交互的問題

基本數據類型和包裝類之間的對應關系如下:

基本類型——包裝類

byte——Byte

short——Short

int——Integer

long——Long
float——Float

double——Double

char——Character

booleam——Boolean

1. 包裝類與基本數據類型裝換的裝箱和拆箱

package wrap;

public class WrapTestOne {
    public static void main(String[] args) {
        //裝箱:把基本數據類型轉換成包裝類
        
//1. 自動裝箱 int t1 = 2; Integer t2 = t1; //把t1直接賦值給t2 //2. 手動裝箱 Integer t3 = new Integer(t1); //測試 System.out.println("int類型變量t1的值:"+t1); System.out.println("Integer類型對象t2的值:"+t2); System.out.println("Integer類型對象t3的值:"+t3); //拆箱:把包裝類轉換成基本數據類型
//1. 自動拆箱 int t4 = t2; //2. 手動拆箱 int t5 = t2.intValue(); //把Integer對象t2轉換成int類型的值 System.out.println("Integer對象t2的值:"+t2); System.out.println("自動拆箱後,int類型變量t4的值:"+t4); System.out.println("手動拆箱後,int類型變量t5的值:"+t5); double t6 = t2.doubleValue(); //把t2轉換成double了類型的值
System.out.println(t6); } }

2. 基本數據類型和字符串之間的轉換

package wrap;

public class WrapTestTwo {
    public static void main(String[] args) {
        //基本數據類型轉換為字符串
        int t1 = 2;
        String t2 = Integer.toString(t1);  //使用toString方法,把int類型轉換為String

        //測試
        System.out.println("int類型轉換為String類型對象t2="+t2);

        //字符串轉換為基本數據類型
        int t3 = Integer.parseInt(t2);   //使用Integer的parseInt方法,把字符串轉換成int類型
        System.out.println("String類型轉換為int類型變量t3= "+t3);
        int t4 = Integer.valueOf(t2);  //把String轉換成Integer類型後,自動拆箱操作變成int類型
        System.out.println(t4);

    }
}

3. 包裝類的默認值

    String name;  //包裝類和基本類型默認值都是null
int mouth; //默認值為0
Integer mouth1; //默認值為null
double weight; //默認值為0.0
Double weight1; //默認值為null

4. 包裝類的比較

package wrap;

public class WrapperTest {
    public static void main(String[] args) {
        Integer one = new Integer(100);
        Integer two = new Integer(100);
        System.out.println(one == two);   //false:等號兩邊放對象名,比較的是引用對象指向的不同的內存空間

        Integer three = 100;   //自動裝箱
        System.out.println(three == 100);  //比較時自動拆箱  100==100 true
//        Integer foure = 100;  ====等於(-128————127之間隱式調用)=====     Integer foure = Integer.valueOf(100);
        Integer foure = Integer.valueOf(100);
        System.out.println(three == foure);    //隱式調用,因此指向的是內存的同一塊空間

        Integer five = 200;
        System.out.println(five == 200);
        Integer six = 200;
        System.out.println(five == six);  //false 超過隱式調用的區間了
    }

}

註意:float和double類型不具備常量池概念,也就是int中的隱式調用




基本類型和包裝類