java equal 不等于_java Integer判断相等只能使用equals(不能使用==)
java?Integer包裝類和基礎(chǔ)類型int,相互之間都可以使用==判斷相等,平時(shí)沒注意不能使用==,也不會(huì)輕易報(bào)錯(cuò),但是實(shí)際只能用equals,而int之間就沒得選,只能==。
測試代碼
Integer c = 3;
Integer d = 3;
Integer e = 321;
Integer f = 321;
System.out.println(c == d);
System.out.println(e == f);
結(jié)果輸出:
true
false
Integer為對(duì)象判斷是否相等還是使用equals最靠譜,int為基本類型,判斷是否相等就是可以使用==
其中原因:
static final Integer cache[] = new Integer[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Integer(i - 128);
}
}
這是源碼中的,也就是說cache中已有-128到127,不在這范圍的會(huì)新new ,這時(shí)可以理解比較是內(nèi)存地址,
也就是是不是同一對(duì)象.
所以說當(dāng)Integer的值不在-128到127的時(shí)候使用==方法判斷是否相等就會(huì)出錯(cuò),在這個(gè)范圍之內(nèi)的就會(huì)沒有問題!!!
總結(jié)
以上是生活随笔為你收集整理的java equal 不等于_java Integer判断相等只能使用equals(不能使用==)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax java 插件_对JQuery
- 下一篇: java中factory_JAVA工厂方