你會使用jdk5 0提供的自動裝箱拆箱功能嗎

2021-08-22 05:42:43 字數 450 閱讀 7472

來看乙個小例子:

public class test}/*

public class test}*/

結果前者為true,後者為false,這有點令人驚訝,兩個例子語法完全一樣,只不過改了個數值而已,結果卻相反,其實這與==運算子的比較有關,==操作符既可以用來比較兩個基本資料型別的變數值是否相等,也可以用於判斷兩個物件變數名稱是否引用至同乙個物件.在jdk5.0開始,有了自動裝箱這個功能,對於值從-128到127之間的值,它們被裝箱為integer物件後,會存在記憶體中被重用,所以上面的第乙個例子使用==進行比較時,i1和i2實際上引用至同乙個物件,結果返回true,如果超出此範圍,被裝箱後的integer物件並不會被重用,即相當於每次裝箱時都新建乙個integer物件,所以後面的例子使用==進行比較時,i1和i2引用的是不同的物件.如果使用"i1.equals(i2)"那就是返回true了.我們使用自動裝箱和拆箱功能時一定要小心.

JDK 5 0新特性 列舉

列舉 需要在一定範圍內取值,這個值只能是這個範圍內的任意乙個。例如 交通訊號燈。列舉的構造方法是私有的。建立列舉的格式 其中enum為列舉關鍵字 enum 列舉型別名稱例如紅綠燈的列舉 private color color test public void test enum color列舉的常用...

JDK5 0 范型小測驗

在部落格堂看到了一篇關於c 2.0範性的小測驗 http blog.joycode.com ninputer archive 2005 11 02 66256.aspx 考慮到jdk 5.0也引進了範性,特意在jdk 5.0做了相應的測試。quiz1 判斷以下 是否有錯,如果有錯,說出錯誤型別,如果...

jdk5 0 多執行緒學習筆記(五)

今天,我們來學學worker模式,大家也好對jdk5.0的執行緒池有乙個更好的理解。先來看看 public class main 再來看看傳送請求的client public class clientthread extends thread public void run catch interr...