論Integer 型別值比較

2022-09-13 14:15:25 字數 465 閱讀 5053

j**a 中對於包裝模擬較,建議都用equals去比較

原因呢:

首先我們來看八大基本資料型別的比較

1==1 true

這是因為基本資料型別的值直接掛到變數上了,所以比較值的時候相等。

string a = new string("hello");

string b = new string("hello");

a == b false

這是因為值"hello"在堆記憶體中, 變數a是引用的string例項在堆記憶體中的位址。

所以a 和b為false

那麼integer也屬於引用型別,所以建議比較時候用equals

不過integer它內部有integercache , 對於 -128 ~ 127以內的數會在cache中產生,會復用已有物件 , 所以在這個區間內的數用 == 比較也是可以的。

論integer 型別值比較

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型別資料的比較

我們在做integer資料比較的時候,會有意想不到的結果,通過看integer的原始碼,問題迎刃而解。這裡的論述建立在jdk版本是1.8 intger類有個靜態內部類integercache,是用於快取intger物件的。這裡會快取 128 到127的資料。private static class ...

Integer與int值的比較

一般用於比較記憶體位址,equals 用於比較object的值,注意int用equals 是會報錯的。integer i 1 integer k 1 i.equals k true i k true i.intvalue k.intvalue true integer l 129 integer p...