黑马程序员技术交流社区

标题: == 和 equals的区别 [打印本页]

作者: iceknc    时间: 2015-9-23 21:56
标题: == 和 equals的区别
假设有个类Student,有两个Student对象
Student s1 = new Student("zhangsan", 18);
Student s2 = new Student("zhangsan", 18);
System.out.println(s1.equals(s2));

Student类里有个方法
  1. public boolean equals(Object obj) {
  2.                 if (this == obj)
  3.                         return true;
  4.                 if (!(obj instanceof Student))
  5.                         return false;
  6.                 Student s = (Student) obj;
  7.                 return this.name.equals(s.name) && this.age == s.age;
  8.             //return this.name == s.name && this.age == s.age;
复制代码
最后一行注释掉的跟前一行的输出结果是一样的,也就是用==比较的地址值是相等的,那究竟内存中是存在一个Student对象呢,还是两个?





作者: 丶洛夜    时间: 2015-9-28 21:38
你第七行代码后面是this.age==s.age
所以这两行的结果会是相同的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2