最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java之如何正確地對(duì)包裝類進(jìn)行裝箱與拆箱

 更新時(shí)間:2023年04月28日 16:31:21   作者:哥Sun  
在這篇文章中給大家繼續(xù)講解包裝類的裝箱和拆箱問(wèn)題。你可能會(huì)很好奇,做java開(kāi)發(fā),怎么還裝起箱子來(lái)了?那么就請(qǐng)大家?guī)е苫笸驴窗?/div>

配套開(kāi)源項(xiàng)目資料

Github:

github.com/SunLtd/Lear…

Gitee:

gitee.com/sunyiyi/Lea…

一. 裝箱

1. 概念

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

2. 案例

下面的案例是手動(dòng)裝箱和自動(dòng)裝箱的實(shí)現(xiàn)過(guò)程。在JDK 1.5前后,裝箱有手動(dòng)裝箱和自動(dòng)裝箱之分,大家要注意。

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

二. 拆箱

1. 概念

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

2. 案例

下面的案例是手動(dòng)拆箱和自動(dòng)拆箱的實(shí)現(xiàn)過(guò)程。在JDK 1.5前后,拆箱有手動(dòng)拆箱和自動(dòng)拆箱之分,大家要注意。

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

3. 小結(jié)

我們要注意,自動(dòng)裝箱和自動(dòng)拆箱只發(fā)生在編譯階段,其目的是為了減少代碼的編寫(xiě)。從性能上來(lái)看,裝箱和拆箱的過(guò)程會(huì)影響代碼的執(zhí)行效率,因?yàn)榫幾g后的class代碼是嚴(yán)格區(qū)分基本類型和引用類型的,所以編譯階段的裝箱和拆箱,在編譯后還是要回歸原始。另外在自動(dòng)拆箱時(shí),如果賦值不當(dāng),有可能會(huì)產(chǎn)生NullPointerException異常,如下所示:

Integer n = null;
//這里就會(huì)產(chǎn)生NPE空指針異常
int m = n;

三. 結(jié)語(yǔ)

至此,壹哥就把Java中的常用包裝類給大家介紹完畢了,現(xiàn)在你知道包裝類和基本類型有什么聯(lián)系和區(qū)別了嗎?本文重點(diǎn)總結(jié)如下:

  • 將基本類型變成包裝類就是裝箱,把包裝類變成基本類型就是拆箱;
  • 裝箱和拆箱都分為手動(dòng)和自動(dòng)兩種情況;
  • 自動(dòng)裝箱和自動(dòng)拆箱都是在編譯期完成的(JDK 1.5之后出現(xiàn)自動(dòng)拆裝箱);
  • 裝箱和拆箱會(huì)影響執(zhí)行效率,且拆箱時(shí)可能發(fā)生 NullPointerException異常 ;

以上就是Java之如何正確地對(duì)包裝類進(jìn)行裝箱與拆箱的詳細(xì)內(nèi)容,更多關(guān)于Java包裝類裝箱拆箱的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一文搞懂Java頂層類之Object類的使用

    一文搞懂Java頂層類之Object類的使用

    java.lang.Object類是Java語(yǔ)言中的根類,即所有類的父類。它中描述的所有方法子類都可以使用。本文主要介紹了Object類中toString和equals方法的使用,感興趣的小伙伴可以了解一下
    2022-11-11
  • Java中泛型使用的簡(jiǎn)單方法介紹

    Java中泛型使用的簡(jiǎn)單方法介紹

    這篇文章主要給大家介紹了關(guān)于Java中泛型使用的簡(jiǎn)單方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • SpringBoot集成swagger3.0指南分享

    SpringBoot集成swagger3.0指南分享

    本文介紹了如何在Spring Boot項(xiàng)目中集成Swagger 3.0,包括添加依賴、配置Swagger、在Controller上添加注解以及配置訪問(wèn)權(quán)限
    2024-11-11
  • Linux中Elasticsearch的安裝詳細(xì)步驟

    Linux中Elasticsearch的安裝詳細(xì)步驟

    這篇文章主要介紹了Linux中Elasticsearch的安裝詳細(xì)步驟,Elasticsearch(ES)是一種分布式、可擴(kuò)展的搜索和分析引擎,基于Lucene構(gòu)建,它支持實(shí)時(shí)數(shù)據(jù)處理、全文搜索、實(shí)時(shí)分析等多種功能,需要的朋友可以參考下
    2024-12-12
  • Java中驗(yàn)證 Mybatis 數(shù)據(jù)分片可以減輕GC壓力的操作方法

    Java中驗(yàn)證 Mybatis 數(shù)據(jù)分片可以減輕GC壓力的操作方法

    這篇文章主要介紹了Java中驗(yàn)證 Mybatis 數(shù)據(jù)分片可以減輕GC壓力的操作方法,本文使用 Spock(可集成Spring Boot項(xiàng)目) 編寫(xiě)測(cè)試用例,基于 Groovy (JVM語(yǔ)言),感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • SpringSecurity自定義注解放行以及在微服務(wù)架構(gòu)中使用詳解

    SpringSecurity自定義注解放行以及在微服務(wù)架構(gòu)中使用詳解

    文章介紹了SpringSecurity的認(rèn)證流程,包括過(guò)濾器鏈的使用、AuthenticationFilter的作用、認(rèn)證管理器的認(rèn)證過(guò)程,以及如何通過(guò)自定義注解實(shí)現(xiàn)接口匿名訪問(wèn)
    2026-03-03
  • SpringBoot 項(xiàng)目使用hutool 工具進(jìn)行 http 接口調(diào)用的處理方法

    SpringBoot 項(xiàng)目使用hutool 工具進(jìn)行 http 接口調(diào)用的處理方

    在實(shí)際的開(kāi)發(fā)過(guò)程中一個(gè)互聯(lián)網(wǎng)的項(xiàng)目來(lái)說(shuō) ,有可能會(huì)涉及到調(diào)用外部接口的實(shí)際業(yè)務(wù)場(chǎng)景,下面通過(guò)本文給大家介紹SpringBoot 項(xiàng)目 使用hutool 工具進(jìn)行 http 接口調(diào)用的處理方法,需要的朋友可以參考下
    2022-06-06
  • Mybatis示例之SelectKey的應(yīng)用

    Mybatis示例之SelectKey的應(yīng)用

    今天小編就為大家分享一篇關(guān)于Mybatis示例之SelectKey的應(yīng)用,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • java對(duì)象類型轉(zhuǎn)換和多態(tài)性(實(shí)例講解)

    java對(duì)象類型轉(zhuǎn)換和多態(tài)性(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇java對(duì)象類型轉(zhuǎn)換和多態(tài)性(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • JavaWeb項(xiàng)目中DLL文件動(dòng)態(tài)加載方法

    JavaWeb項(xiàng)目中DLL文件動(dòng)態(tài)加載方法

    在JavaWeb項(xiàng)目中,有時(shí)候我們需要在運(yùn)行時(shí)動(dòng)態(tài)加載DLL文件(在Windows中是DLL,在Linux中是SO文件),這通常用于實(shí)現(xiàn)一些特定的功能,比如調(diào)用本機(jī)代碼或者使用某些特定于操作系統(tǒng)的API,本文將介紹如何在JavaWeb項(xiàng)目中動(dòng)態(tài)加載DLL文件,需要的朋友可以參考下
    2024-12-12

最新評(píng)論

淮北市| 西城区| 五家渠市| 乌兰浩特市| 邮箱| 肥城市| 瓦房店市| 乐山市| 云龙县| 驻马店市| 西城区| 江阴市| 乐至县| 若羌县| 津南区| 丰台区| 会宁县| 肥城市| 鱼台县| 潜江市| 武宣县| 武鸣县| 沂南县| 黑河市| 图们市| 苗栗市| 沙坪坝区| 明溪县| 萍乡市| 金坛市| 略阳县| 绿春县| 潞西市| 上饶市| 北宁市| 大港区| 阜南县| 报价| 虞城县| 右玉县| 长寿区|