在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
(单独把一个东西说清楚,然后再说清楚另一个,这样,它们的区别自然就出来了,混在一起说,则很难说清楚)

==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。
如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如 Objet obj = new Object();变量 obj 是一个内存,newObject()是另一个内存,此时,变量 obj 所对应的内存中存储的数值就是对象占用的那块内存的首地址。对于指向对象类型的变量,如果要比较两个变量是否指向同一个对象,即要看这两个变量所对应的内存中的数值是否相等,这时候就需要用==操作符进行比较。
equals 方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。例如,对于下面的代码:
String a=new String("foo");
String b=new String("foo");
两条 new 语句创建了两个对象,然后用 a,b 这两个变量分别指向了其中一个对象,这是两个不同的对象,它们的首地址是不同的,即 a 和 b 中存储的数值是不相同的,所以,表达式 a==b 将返回false,而这两个对象中的内容是相同的,所以,表达式a.equals(b)将返回 true。
在实际开发中,我们经常要比较传递进行来的字符串内容是否等,例如,String input =…;input.equals(“quit”),许多人稍不注意就使用==进行比较了,这是错误的,随便从网上找几个项
目实战的教学视频看看,里面就有大量这样的错误。记住,字符串的比较基本上都是使用 equals 方法。
如果一个类没有自己定义 equals 方法,那么它将继承 Object 类的 equals 方法,Object 类的 equals 方法的实现代码如下:
boolean equals(Object o){
return this==o;
}
这说明,如果一个类没有自己定义 equals 方法,它默认的 equals方法(从 Object 类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用 equals 和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回 false。
如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖 equals 方法,由你自己写代码来决定在什么情况即可认为两个对象的内容是相同的。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
MySQL和Oracle的区别?
当你面试的时候突然被问到:MySQL和Oracle的区别?你会怎么回答?其实面试官提问的时候主要是想考察你对数据库的理解以及熟练程度,什么情况下使用 mysql,什么情况下使用 Oracle,各有什么优缺点!下面小编带大家一起分析这个问题的解答方式!
16667
2019-06-28 18:29:20
Java程序员面试题Spring Boot框架
Spring Boot框架可以简化Spring开发,并且监护spring应用开发。从本质上来说,Spring Boot就是Spring。程序员在Java的面试中,也会常常遇到关于Spring Boot的面试题,因此本文整理了一些这方面的经典知识点,有需求的小伙伴可以复习一下。
8518
2019-09-12 16:44:49
Java面试题之面向对象整理附答案
面向对象以数据为中心的开发方式,使用继承来简化开发过程,使用接口来规范对数据的操作,使用多态达到操作的灵活性。可以说面向对象是Java面试中的一个常见重要考点,因此本文为大家整理了面向对象的相关面试题,其中包括面向对象的特性、访问权限修饰符和clone对象的理解。大家可以结合着参考答案,梳理一遍面向对象的相关知识点。
10783
2019-12-04 14:01:29
Spring AOP应用场景有哪些?Aop工作原理分析
Aop工作原理分析,面向切面编程,是通过代理的方式为程序添加统一功能,集中解决一些公共问题。应用在Debugging 调试、logging, tracing, profiling and monitoring 记录跟踪优化校准场景中。
11871
2020-09-02 11:08:42
Redis数据库执行命令速度快的原因是什么?
Redis数据库执行命令速度快的原因是什么?作为服务端工程师工作中Redis用到的比较多。很多人知道Redis 快仅仅因为它是基于内存实现的,对于其它原因倒是模棱两可。
6628
2021-05-11 11:07:52
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息
