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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 自动拆箱_Java 自动装箱 和 自动拆箱

發布時間:2025/3/12 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 自动拆箱_Java 自动装箱 和 自动拆箱 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

自動裝箱:/**

*?實際上,程序運行時,系統為我們執行了下面一條語句:

*?Integer?number?=?new?Integer(290);

*/

Integer?number?=?290;

System.out.println(number);

自動拆箱:Integer?number?=?290;

//?Other?code

/**

*?實際上,程序運行時,系統為我們執行了下面一條語句:

*?int?number2?=?number.intValue();

*/

int?number2?=?number;

System.out.println(number2);

就上面示例代碼塊而言,實際上自動裝箱就是系統自動幫我們去 new 了 Integer 對象,大家都知道,每個對象都會有一個 hashCode() 方法,這個方法是繼承 Object 而來,Object 類是所有類的超類。當需要比較兩個對象是否相等時,可以用 "==" 和 equals 來做比較。

于對象而言, "==" 比較的是哈希碼的值,也就是比較 hashCode() 方法的返回值,這個值是唯一的,在底層它是用來確定對象在堆內存上的存儲位置。"==" 也可以用來做基本數據類型的比較。equals 方法大家都知道,它是用來比較兩個對象的內容是否一樣。

上面說到自動裝箱其實就是系統自動幫我們去 new 了 Integer 對象,但是神奇的事情發生了:

當 int 的取值在 -128 ~ 127 之間的時候,這時候系統并不會每次都幫我們去 new 一個 Integer 對象,而是取值相同的對象只會被 new 一次,取值相同的 Integer 對象系統不會再去 new 一次,而是共享了已有的這個 Integer 對象。

而當 int 的取值在 -128 ~ 127 之外的時候,這時候不管 Integer 對象的取值是否一樣,系統都會去 new 一個。//?-128~127?之內的數

Integer?number1?=?40;

Integer?number2?=?40;

System.out.println("number1?==?number2?:?"?+?(number1?==?number2));

//?-128~127?之外的數

Integer?number3?=?128;

Integer?number4?=?128;

System.out.println("number3?==?number4?:?"?+?(number3?==?number4));

System.out.println("number3?equals?number4?:?"?+?(number3.equals(number4)));

示例代碼輸出結果:number1?==?number2?:?true

number3?==?number4?:?false

number3?equals?number4?:?true

short 與 int 的裝箱規則是一樣,就不多說了,但不要認為所有的基本數據類型都有這樣一個規則,比如 float 和 double 都沒有這樣的規則,float 和 double 每次裝箱的時候都是會包裝成一個對象的。

轉載請并標注: “本文轉載自 linkedkeeper.com ”???著作權歸作者所有

總結

以上是生活随笔為你收集整理的java 自动拆箱_Java 自动装箱 和 自动拆箱的全部內容,希望文章能夠幫你解決所遇到的問題。

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