2個Integer作比較時,需要注意的地方

2021-08-31 06:29:16 字數 412 閱讀 8509

今天受打擊了,一同事問了我乙個問題,,,我當場就肯定的說:答案  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乙個...