為什么直接用equals()比較對象course與course2還是false?
我用
Course course = new Course("1" , "高數(shù)") ;
Course course2 = new Course(course.id , course.name) ;
System.out.println( course.equals(course2));
為什么輸出還是false?
兩個對象內(nèi)容相等不是true嗎?而且就算用 == 比較內(nèi)存地址的話也應(yīng)該指向相同的字符串地址呀?
謝謝大家~
2016-08-08
用 == 比較內(nèi)存地址的話是不相同的,每創(chuàng)建一個對象,內(nèi)存棧就會為其分配一個新的 內(nèi)存地址,
Course course = new Course("1" , "高數(shù)") ; 何以明顯看到course 的兩個參數(shù)都是String類型,
而 course.id 與 course.name 應(yīng)該是 內(nèi)存地址吧,
2016-07-09
我的理解,equals默認也是比較地址的,重寫之后才比較內(nèi)容
2016-05-08
因為course和course2是兩個不同的對象,所以不可能相等