java面试 = =和equale的区别.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java常见笔试面试题目解析(十四):==和equals的区别 Java代码 1. public class Person { 2. String name; 3. public Person(String name){ 4. this.name = name; 5. } 6. @Override 7. public boolean equals(Object anObject){ 8. //仿照String类的equals方法来写 9. if(this == anObject) return true; 10. if(anObject instanceof Person){ 11. Person p = (Person)anObject; 12. if(p.name.equals(this.name)) 13. return true; 14. } 15. return false; 16. } 17. } 18. 19. public class Equals==Test { 20. public static void main(String[] args) { 21. String str = new String(abc); //语句(1) 22. String str2 = new String(abc);//语句(2) 23. 24. System.out.println(str == str2);//语句(3) 25. System.out.println(str.equals(str2));//语句(4) 26. 27. Object object = new Object();//语句(5) 28. Object object2 = new Object();//语句(6) 29. 30. System.out.println(object == object2);//语句(7) 31. System.out.println(object.equals(object2));//语句(8) 32. 33. Person p = new Person(zhangsan);//语句(9) 34. Person p2 = new Person(zhangsan);//语句(10) 35. 36. System.out.println(p == p2);//语句(11) 37. System.out.println(p.equals(p2));//语句(12) 38. } 39. } 40. 问题1:执行完语句(3)(4)打印的结果是什么?说明理由 解答:执行完语句(3)(4)打印的结果是false和true。 分析:str和str2是引用,它们指向不同的对象,内存地址不同,所以str==str2为false。我们看看String的equals方法的源码,它是对Object的equals方法的重写: Java代码 public boolean equals(Object anObject) { 1. if (this == anObject) { return true; } 2. if (anObject instanceof String) { 3. String anotherString = (String)anObject; 4. int n = count; 5. if (n == anotherString.count) { 6. char v1[] = value; 7. char v2[] = anotherString.value; 8. int i = offset; 9. int j = anotherString.offset;

文档评论(0)

勤能补拙 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档