日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【JAVA基础篇】彻底搞懂拆箱装箱

發布時間:2025/3/8 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【JAVA基础篇】彻底搞懂拆箱装箱 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是裝箱拆箱?

Java有8種基本數據類型,并且為這8種類型提供了包裝器類型。比如說int類型的包裝器類型是Integer。

裝箱是指將基本數據類型轉換成對應的包裝器類型。拆箱是指將包裝器類型轉換基本數據類型。

Integer i = 10; //自動裝箱 int n = i; //自動拆箱

裝箱拆箱是如何實現的

在裝箱的時候自動調用的是Integer的valueOf(int)方法。而在拆箱的時候自動調用的是Integer的intValue方法。

也就是說Integer i = 10實際上是Integer.valueOf(10),int n = i實際上是i.intValue()

面試中的相關問題

Integer integer = 1;Integer integer1 = new Integer(1);//包裝器類型的構造方法必然會創建一個新的對象Integer integer3 = 1;int i = 1;System.out.println(integer==integer3);//Integer.valueOf會對-128-127的數做緩存,所以integer和integer3指向同一個對象System.out.println(integer==integer1);//兩個操作是引用類型時,這種情況不會觸發拆箱,==是比較兩個對象的內存地址,結果是falseSystem.out.println(integer==i);//,integer會拆箱成int類型,結果是trueSystem.out.println(integer<integer1);//integer和integer1都會拆箱成int類型,結果是false

注意:除了==或者!=操作兩個包裝器實例的情況是比較對象內存地址外,其他的操作符操作包裝器類型的話都會觸發自動拆箱。

?

總結

以上是生活随笔為你收集整理的【JAVA基础篇】彻底搞懂拆箱装箱的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。