java 的 == 和equals()区别
生活随笔
收集整理的這篇文章主要介紹了
java 的 == 和equals()区别
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
先看一個列子:
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);} }通常我們都以為結果是 第一個true第二個false,但實際結果卻是第一個false第二個true.?
究其原因,n1和n2其實是對象,他們的句柄是不同的,而==和!=比較的正是句柄,而不是對象內容,所以才出現(xiàn)上面的結果,而如果要比較像個對象的值呢?
就應該用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));} }與我們預料的一樣,結果是true, 但是, 實際上equals默認行為仍然是比較句柄,只是大多數(shù)Java類庫都實現(xiàn)了equals(),所以它實際比較的是對象的內容,而非它們的句柄
轉載于:https://www.cnblogs.com/qianjin100/p/7300283.html
總結
以上是生活随笔為你收集整理的java 的 == 和equals()区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到蚯蚓和蛇是什么意思
- 下一篇: 梦到辣椒秧什么预兆