Integer型別資料的比較

2021-09-24 19:24:24 字數 805 閱讀 1446

我們在做integer資料比較的時候,會有意想不到的結果,通過看integer的原始碼,問題迎刃而解。這裡的論述建立在jdk版本是1.8

intger類有個靜態內部類integercache,是用於快取intger物件的。這裡會快取-128 到127的資料。

private static class integercache  catch( numberformatexception nfe) 

}high = h;

cache = new integer[(high - low) + 1];

int j = low;

for(int k = 0; k < cache.length; k++)

cache[k] = new integer(j++);

// range [-128, 127] must be interned (jls7 5.1.7)

assert integercache.high >= 127;

}private integercache() {}

}

我們再看integer.valueof(int i)方法,如果請求的物件是-128-127之間,則直接返回快取中的物件,如果不在這個區間,則會新建乙個物件返回。

public static integer valueof(int i)
我們執行下栗子:

package com.leadbank.util;

public class integertest

}

Integer型別物件比較

先看一段 integer i1 1813 integer i2 1813 system.out.println i1 i2 integer i3 127 integer i4 127 system.out.println i3 i4 列印結果 false true i1 i2 結果是false容易理...

論Integer 型別值比較

j a 中對於包裝模擬較,建議都用equals去比較原因呢 首先我們來看八大基本資料型別的比較 1 1 true 這是因為基本資料型別的值直接掛到變數上了,所以比較值的時候相等。string a new string hello string b new string hello a b false...

Integer和int基本型別的比較

先看幾行 integer a1 100 integer a2 100 system.out.println a1 a2 a1 a2 integer b1 200 integer b2 200 system.out.println b1 b2 b1 b2 integer c1 new integer ...