我用
Course course = new Course("1" , "高数") ;
Course course2 = new Course(course.id , course.name) ;
System.out.println( course.equals(course2));
为什么输出还是false?
两个对象内容相等不是true吗?而且就算用 == 比较内存地址的话也应该指向相同的字符串地址呀?
谢谢大家~
用 == 比较内存地址的话是不相同的,每创建一个对象,内存栈就会为其分配一个新的 内存地址,
Course course = new Course("1" , "高数") ; 何以明显看到course 的两个参数都是String类型,
而 course.id 与 course.name 应该是 内存地址吧,
我的理解,equals默认也是比较地址的,重写之后才比较内容
因为course和course2是两个不同的对象,所以不可能相等