今天受打擊了,一同事問了我乙個問題,,,我當場就肯定的說:答案 t t啊。。還用的著想?
可是當我把它們copy執行時,才發現,結果顯示的與我預想的不一想。。。
integer i1 = 127;
integer i2 = 127;
system.out.println(i1==i2);
integer i3 = 128;
integer i4 = 128;
system.out.println(i3==i4);
後來那同事跟我解釋了一下,我覺得挺好,這也是我們很容易忽視的地方,所以貼出來了;
原因是:
在自動裝箱時對於值從–128到127之間的值,它們被裝箱為integer物件後,會存在記憶體中被重用,超出範圍就每次建立
兩個NSIndexPath之間直接作比較
最近專案中遇到要判斷nsindexpath記錄的位置是否相同,最開始直接用的等號來判斷 if selectedindexpath indexpath 結果發現在64位的機器上可以,32位的就不行。後來換成了以下方法就ok了。if selectedindexpath.row indexpath.row...
交換2個Integer的資料
交換2個資料 public static void main string args throws exception 這裡雖然是引用傳遞型別,但是integer內部並沒有提供改變內部值的方法,所以可以使用反射 param a param b getdeclaredfields 獲得某個類的所有宣告...
兩個Integer型別比較大小
基本型別和string比較資料比較實用的是使用工具模擬較靠譜 objectutils.equals object,object 使用apache.common的objectutils是有乙個坑 obejctutils.equals 引數1,引數2 切記引數1和引數2是同一型別,乙個integer乙個...