class A { int a=1; } class Appa { public static void main(String args[]) { A obj1,obj2; obj1=new A(); obj2=new A(); System.out.println("obj1==obj2:"+(obj1.equals(obj2 ))); System.out.println("obj1==obj2:"+(obj1==obj2)); } } 輸出結(jié)果為什么都是false阿?
2 回答

繁星淼淼
TA貢獻1775條經(jīng)驗 獲得超11個贊
== 和 Equals 的區(qū)別
1. == 是一個運算符。
2.Equals則是string對象的方法,可以.(點)出來。
我們比較無非就是這兩種 1、基本數(shù)據(jù)類型比較 2、引用對象比較
1、基本數(shù)據(jù)類型比較
==和Equals都比較兩個值是否相等。相等為true 否則為false;
2、引用對象比較
==和Equals都是比較棧內(nèi)存中的地址是否相等 。相等為true 否則為false;
需注意幾點:
1、string是一個特殊的引用類型。對于兩個字符串的比較,不管是 == 和 Equals 這兩者比較的都是字符串是否相同;
2、當你創(chuàng)建兩個string對象時,內(nèi)存中的地址是不相同的,你可以賦相同的值。
所以字符串的內(nèi)容相同。引用地址不一定相同,(相同內(nèi)容的對象地址不一定相同),但反過來卻是肯定的;
3、基本數(shù)據(jù)類型比較(string 除外) == 和 Equals 兩者都是比較值;
添加回答
舉報
0/150
提交
取消