java 的 == 和equals()区别
生活随笔
收集整理的這篇文章主要介紹了
java 的 == 和equals()区别
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
先看一個(gè)列子:
public class Equivalence {public static void main(String[] args) {Integer n1 = new Integer(47);Integer n2 = new Integer(47);System.out.println(n1 == n2);System.out.println(n1 != n2);} }通常我們都以為結(jié)果是 第一個(gè)true第二個(gè)false,但實(shí)際結(jié)果卻是第一個(gè)false第二個(gè)true.?
究其原因,n1和n2其實(shí)是對(duì)象,他們的句柄是不同的,而==和!=比較的正是句柄,而不是對(duì)象內(nèi)容,所以才出現(xiàn)上面的結(jié)果,而如果要比較像個(gè)對(duì)象的值呢?
就應(yīng)該用equals, 例如:
public class EqualsMethod {public static void main(String[] args) {Integer n1 = new Integer(47);Integer n2 = new Integer(47);System.out.println(n1.equals(n2));} }與我們預(yù)料的一樣,結(jié)果是true, 但是, 實(shí)際上equals默認(rèn)行為仍然是比較句柄,只是大多數(shù)Java類庫都實(shí)現(xiàn)了equals(),所以它實(shí)際比較的是對(duì)象的內(nèi)容,而非它們的句柄
轉(zhuǎn)載于:https://www.cnblogs.com/qianjin100/p/7300283.html
總結(jié)
以上是生活随笔為你收集整理的java 的 == 和equals()区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到蚯蚓和蛇是什么意思
- 下一篇: HAproxy部署配置