首頁  >  文章  >  Java  >  java包裝類詳解

java包裝類詳解

王林
王林轉載
2020-07-08 16:34:483372瀏覽

java包裝類詳解

一、定義:

(推薦學習:java入門程式

Java是一個物件導向的程式語言,但是Java中的八種基本資料類型並不是物件導向的,為了使用方便和解決這個不足,在設計類別時為每個基本資料類型設計了一個對應的類別來代表,這樣八種基本資料型態對應的類別統稱為包裝類別(Wrapper Class),包裝類別皆位於java.lang包中。

二、包裝類別的用途

為了使用方便,Java中將8中基本資料類型進行了封裝:除了Integer和Character類別以外,其它六個類別的類別名稱和基本資料類型一致,只要將類別名稱的第一個字母大寫即可。

boolean —> Boolean

char —> Character

byte—> Byte

##short—> Short

#長—> Long

int —> Integer

float—> Float

double—> Double

#對於包裝類別說,用途主要包含兩種: 

a、作為和基本資料型別對應的類別存在,方便涉及物件的操作。 

b、包含每個基本資料類型的相關屬性,如最大值、最小值等,以及相關的操作方法。

三、包裝類別的實際使用(以int和integer為例)

1、int與integer類別之間的轉換 

在實際轉換時,使用Integer類別的建構方法和Integer類別內部的intValue方法來實現這些類型之間的相互轉換。

        //
        int n=5;
        Integer n1=new Integer(n);
        System.out.println("int类型转换为integer类:"+n1);
        //
        Integer i=new Integer(50);
        int i1 = i.intValue();
        System.out.println("integer类转换为int类型:"+i1);

2、Integer類別內部的常用方法 

Integer類別的主要方法有:parseInt方法和toString方法。

        //parseInt方法: 数字字符串类型转成int类型
        String ss="123";
        int ii = Integer.parseInt(ss);
        System.out.println("字符类型转成整型:"+ii);
        //toString方法:int类型转成数字字符串类型
        int ii2=123;
        String ss2 = Integer.toString(ii2);
        System.out.println("int类型转成数字字符串类型:"+ss);

JDK自從1.5版本以後,就引入了自動拆裝箱的語法,也就是在進行基本資料類型和對應的包裝類別轉換時,系統將自動進行,這將大大方便程式設計師的程式碼書寫。 

(影片教學建議:

java影片教學

自動包裝:將 基本資料型別 封裝為物件類型,來符合java的物件導向的想法。 

自動拆箱:將物件重新轉換為基本資料型別。

        //5是基本数据类型,通过自动装箱变成对象类型。
        //编译器执行了Integer iii = Integer.valueOf(5)
        Integer iii=5;
        //自动拆箱,实际上执行了 int iii2 = iii.intValue()
        int iii2=iii;
        System.out.println(iii2);

說明:Integer iii=5;相當於編譯器執行了Integer iii = Integer.valueOf(5)作業。

這個方法就是傳回一個Integer對象,只是在返回之前,看作了一個判斷,判斷當前i 的值是否在[-128,127] 區別,且IntegerCache 中是否存在此對象,如果存在,則直接回傳引用,否則,建立一個新的物件。

3、包裝類別的快取值

各個包裝類別快取值範圍 :

boolean:true和false 
byte:-128~127 
char:0~127 
short:-128~127 
int:-128~127 
long:-128~127

特別注意:對於float和double沒有快取。

在對上述值進行裝箱的時候(如:Character c1=127;or Integer i= Integer.valueOf(1); 這個不行哦:Integer i2=new Integer(1);因為這是新建了一個對像出來。),並不是創建一個新對象而是使用緩​​存中的對象,如果超出範圍則需要新建立對象。

以上是java包裝類詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除