中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java之怎么正確地對包裝類進行裝箱與拆箱

發布時間:2023-04-28 17:56:55 來源:億速云 閱讀:146 作者:iii 欄目:開發技術

這篇文章主要介紹“Java之怎么正確地對包裝類進行裝箱與拆箱”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Java之怎么正確地對包裝類進行裝箱與拆箱”文章能幫助大家解決問題。

    一. 裝箱

    1. 概念

    所謂的裝箱(Boxing),其實就是將基本類型轉換成包裝類,例如把double變成Double。裝箱分為手動裝箱和自動裝箱(Auto Boxing),如果我們手動實例化一個包裝類,這就是手動裝箱。在JDK 1.5之前,必須進行手動裝箱;JDK 1.5之后,可以進行自動裝箱,不用再進行手工操作,這就簡化了開發,提供了方便。

    2. 案例

    下面的案例是手動裝箱和自動裝箱的實現過程。在JDK 1.5前后,裝箱有手動裝箱和自動裝箱之分,大家要注意。

    public class BoxTest {
        public static void main(String[] args) {
    	//JDK 1.5之前的拆裝箱過程--手動拆裝箱
    	byte b = 10;
    	//手動裝箱
    	Byte b1 = Byte.valueOf(b);
    	System.out.println("手動裝箱后的結果,b1="+b1);
            //手動裝箱的另一種形式
    	int m = 100;
            Integer obj = new Integer(m);  
            //手動拆箱的另一種形式
            int n = obj.intValue(); 
            System.out.println("n = " + n);
    	//JDK 1.5之后的拆裝箱過程--自動拆裝箱        
    	int i = 10;
    	//自動裝箱
    	Integer i001 = i;
    	System.out.println("自動裝箱后的結果,i001="+i001);
        }
    }

    二. 拆箱

    1. 概念

    所謂的拆箱(Unboxing),其實就是將包裝類型轉換成基本類型,例如把Double變成double。同樣的,拆箱也分為手動拆箱和自動拆箱(Auto Boxing),手動實例化操作包裝類,就是手動拆箱。在JDK 1.5之前必須手動進行拆箱,JDK 1.5之后就可以自動拆箱了。

    2. 案例

    下面的案例是手動拆箱和自動拆箱的實現過程。在JDK 1.5前后,拆箱有手動拆箱和自動拆箱之分,大家要注意。

    public class BoxTest {
        public static void main(String[] args) {
    	//JDK 1.5之前的拆裝箱過程--手動拆裝箱
    	byte b = 10;
    	//手動裝箱
    	Byte b1 = Byte.valueOf(b);
    	System.out.println("手動裝箱后的結果,b1="+b1);
    	//手動拆箱
    	byte b2 = b1.byteValue();
    	System.out.println("手動拆箱后的結果="+b2);
    	//JDK 1.5之后的拆裝箱過程--自動拆裝箱        
    	int i = 10;
    	//自動裝箱
    	Integer i001 = i;
    	System.out.println("自動裝箱后的結果,i001="+i001);
    	//自動拆箱
    	int i002 = i001;
    	System.out.println("自動拆箱后的結果,i002="+i002);
        }
    }

    3. 小結

    我們要注意,自動裝箱和自動拆箱只發生在編譯階段,其目的是為了減少代碼的編寫。從性能上來看,裝箱和拆箱的過程會影響代碼的執行效率,因為編譯后的class代碼是嚴格區分基本類型和引用類型的,所以編譯階段的裝箱和拆箱,在編譯后還是要回歸原始。另外在自動拆箱時,如果賦值不當,有可能會產生NullPointerException異常,如下所示:

    Integer n = null;
    //這里就會產生NPE空指針異常
    int m = n;

    關于“Java之怎么正確地對包裝類進行裝箱與拆箱”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    宜兰市| 渭源县| 海盐县| 兴业县| 龙山县| 舞阳县| 商丘市| 奉化市| 光山县| 军事| 东方市| 肇庆市| 商都县| 错那县| 榆社县| 天门市| 沾益县| 林周县| 八宿县| 北碚区| 台南县| 宜川县| 门头沟区| 乡宁县| 乌什县| 康乐县| 湟源县| 凤庆县| 邹平县| 如东县| 察雅县| 桂阳县| 建阳市| 广宗县| 武功县| 宣城市| 鲁甸县| 如皋市| 上蔡县| 金秀| 台州市|