关于==和equals的区别和联系,面试这么回答就可以

216 篇文章 3 订阅 ¥29.90 ¥99.00
46 篇文章 3 订阅

长篇大论的话,我这里就不多写了,相信大家入门java 的时候就知道个大概了,这里想表述的是,如果面试官问你《关于==和equals的区别》,该怎么回答完美呢?可以这样说

总结的来说:

1)对于==,比较的是值是否相等

如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;

如果作用于引用类型的变量,则比较的是所指向的对象的地址

2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象

如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;

诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。

  • 112
    点赞
  • 361
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 23
    评论
一. Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量中能不能存贮一个中文汉字?为什么? 9 8、用最有效率的方法算出2乘以8等於几? 9 9、请设计一个一百亿的计算器 9 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 13 16、下面的代码有什么不妥之处? 13 17、请说出作用域public,private,protected,以及不写时的区别 13 18、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 14 19、构造器Constructor是否可被override? 15 20、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? 15 21、写clone()方法时,通常都有一行代码,是什么? 15 22、面向对象的特征有哪些方面 15 23、java中实现多态的机制是什么? 17 24、abstract class和interface有什么区别? 17 25、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 18 26、什么是内部类?Static Nested Class 和 Inner Class的不同。 19 27、内部类可以引用它的包含类的成员吗?有没有什么限制? 20 28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 21 29、super.getClass()方法调用 21 30、String是最基本的数据类型吗? 22 31、String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的区别 23 35、如何把一段逗号分割的字符串转换成一个数组? 24 36、数组有没有length()这个方法? String有没有length()这个方法? 24 37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 24 38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 41、运行时异常与一般异常有何异同? 27 42、error和exception有什么区别? 28 43、Java中的异常处理机制的简单原理和应用。 28 等等........
### 回答1: ==和equals都是用于比较两个对象是否相等的方法,但是它们的实现和比较方式不同。 ==用于比较两个对象的引用是否相等,即是否指向同一个内存地址。如果两个对象的引用相同,则==返回true,否则返回false。 而equals方法则是用于比较两个对象在逻辑上是否相等。equals默认实现是使用==进行比较,但是在许多类中,equals方法被重写以提供更精确的比较。例如,String类的equals方法被重写以比较两个字符串的内容是否相同。 总之,==比较的是对象的引用是否相同,而equals方法比较的是对象的内容是否相同。 ### 回答2: "=="和"equals"是Java中用于比较两个对象的方法。它们的区别主要在于以下几个方面: 1. 比较对象类型: - "=="比较的是对象的内存地址,即它们是否指向同一个对象。 - "equals"比较的是对象的内容,即它们是否在逻辑上相等。 2. 默认行为: - 对于基本数据类型,"=="比较的是它们的值是否相等。 - 对于对象类型,"=="比较的是对象的引用是否相等,即它们指向同一个内存地址。 - 对于大多数Java类,"equals"默认使用的是"=="的比较行为,即比较对象引用的相等性。 3. 重写行为: - 在某些类中,比如String、Wrapper类等,它们重写了"equals"方法来比较对象内容的相等性。 - 重写后的"equals"方法可以根据对象的自定义逻辑来判断它们是否相等。 总结来说,"=="比较的是对象的引用是否相等,而"equals"比较的是对象的内容是否相等。在比较对象时,应根据具体情况选择使用"=="还是"equals"方法。如果要比较对象的内容相等性,则应使用"equals"方法,并根据需要进行重写。 ### 回答3: "=="和equals()是Java编程语言中用于比较对象的两种不同方式。 "=="是Java中的一个操作符,用于比较两个对象的内存地址是否相同。当使用"=="比较两个对象时,实际比较的是对象的引用,即判断两个对象是否指向同一个内存地址。如果两个对象的引用相同,"=="会返回true,否则返回false。 而equals()是Object类中定义的一个方法,用于比较两个对象的内容是否相同。默认情况下,equals()方法比较的是两个对象的内存地址,即与"=="操作符相同。但是,我们可以在自定义类中重写equals()方法,以根据自己的需求来比较对象的内容。在重写equals()方法时,通常需要比较对象的各个属性,以确定对象是否相等。 总结来说,"=="比较的是对象的引用,即内存地址;而equals()比较的是对象的内容。对于Java的基本数据类型(如int、float等),"=="比较的是它们的值,而不是引用。对于自定义类的对象,需要根据具体情况来确定是使用"=="还是equals()来比较对象。通常情况下,equals()更常用,因为它可以根据需求来自定义比较规则。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小鱼儿小小林

赞赏是鼓励,点赞是美意

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值