黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java核心基礎,java包裝類數據

Java核心基礎,java包裝類數據

更新時間:2020-05-08 16:43:33 來源:動力節點 瀏覽2418次

    包裝類

    Java中每一種基本類型都會對應一個唯一的包裝類,基本類型與其包裝類都可以通過包裝類中的靜態或者成員方法進行轉換。每種基本類型及其包裝類的對應關系如下,值得注意的是,所有的包裝類都是final修飾的,也就是它們都是無法被繼承和重寫的。

Java核心基礎,java包裝類數據

    包裝類與基本類型的轉換

    從源代碼的角度來看,基礎類型和包裝類型都可以通過賦值語法賦值給對立的變量類型,如下面的代碼所示。

    Integera=1;

    inta=newInteger(1);

    這種語法是可以通過編譯的。但是,Java作為一種強類型的語言,對象直接賦值給引用類型變量,而基礎數據只能賦值給基本類型變量,這個是毫無異議的。那么基本類型和包裝類型為什么可以直接相互賦值呢?這其實是Java中的一種“語法糖”。“語法糖”是指計算機語言中添加的某種語法,這種語法對語言的功能并沒有影響,但是更方便程序員使用。通常來說使用語法糖能夠增加程序的可讀性,從而減少程序代碼出錯的機會(來自百度百科)。換句話說,這其實是一種障眼法,那么實際上是怎么樣的呢?下面是Integera=1;語句編譯的字節碼。

    0:iconst_1

    1:invokestatic#2

    4:astore_1

    首先,生成一個常量1,然后調用Integer.valueOf(int)方法返回Integer對象,最后將對象的地址(引用)賦值給變量a。Integera=1;其實相當于Integera=Integer.valueOf(1);。

    其他的包裝類都是類似的,下表是所有包裝類中的類型轉換方法。

Java核心基礎,java包裝類數據

    “神奇”的包裝類

    如果不了解包裝類中的一些機制,我們有時會碰到一些莫名其妙的問題,丈二和尚——摸不著頭腦。

    “莫名其妙”的NullPointException

    在筆者開發經歷中,碰到過不少因為請求參數或者接口定義字段設置為int(或者其他基本類型)而導致NullPointException。代碼大致地運行步驟如下所示,當然不會跟這個完全一樣。

    Integera=null;

    ...

    intb=a;//拋出NullPointException

    上面的代碼可以編譯通過,但是會拋出空指針異常(NullPointException)。前面已經說過了,intb=a實際上是intb=a.intValue(),由于a的引用值為null,在空對象上調用方法就會拋出NullPointException。

    兩個包裝類引用相等性

    在Java中,“==”符號判斷的內存地址所對應的值得相等性,具體來說,基本類型判斷值是否相等,引用類型判斷其指向的地址是否相等。看看下面的代碼,兩種類似的代碼邏輯,但是得到截然不用的結果。

Java核心基礎,java包裝類數據

    這個必須從源代碼中才能找到答案。Integer類中的valueOf()方法的源代碼如下:

Java核心基礎,java包裝類數據

    由于1屬于[-128,127]集合范圍內,所以valueOf()每次都會取出同一個Integer對象,故第一個“==”判斷結果為true;而222不屬于[-128,127]集合范圍內,所以valueOf()每次都會創建一個新的Integer對象,由于兩個新創建的對象的地址不一樣,故第一個“==”判斷結果為false。

 以上就是動力節點java培訓機構的小編針對“Java核心基礎,java包裝類數據”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美激情欧美狂野欧美精品免费 | 亚洲精品乱码久久久久久蜜桃欧美 | 国产手机视频 | 很黄很色的男女无遮挡动态图 | 欧美中文字幕 | aⅴ天堂网| www.黄色网址 | 福利午夜 | 成人午夜性a一级毛片美女 成人午夜小视频 | 亚洲欧美日韩综合 | 国产视频网 | 欧美香蕉 | 狠狠操她| 中文字幕伦伦在线中文字 | 全色黄大色大片免费久久老太 | 青青草国产97免久久费观看 | 日韩伦理片在线观看 | 国产精品久久久久久 | 欧美人禽猛交狂配免费看 | 日本在线不卡免费 | 香蕉在线视频网站 | 亚洲va久久久久 | 日韩手机视频 | 成人观看免费观看视频 | 国产无套粉嫩白浆在线精品 | 国产成人在线视频网站 | 成人影视频 | 黄色一级片免费播放 | 激情插插 | 伊人中文字幕在线观看 | 天天舔天天爽 | 亚洲一级片网站 | 一个人看的www免费在线视频 | 国产精品边做边接电话在线观看 | 一区二区三区精品视频 | 国产在线精品制服丝袜 | 欧美一级精品高清在线观看 | 亚洲黄色片免费看 | 日本一区深夜影院深a | 亚洲欧美人妖另类激情综合区 | 日韩爽爽爽视频免费播放 |