Java理论面试题及详细答案.docxVIP

  • 2
  • 0
  • 约1.23万字
  • 约 12页
  • 2026-06-08 发布于河北
  • 举报

Java理论面试题及详细答案

一、基础核心类(高频必问)

1.说说Java中的equals()和==的区别?

答案:这是面试最基础也最容易踩坑的题,核心区别就两点,不绕弯子:

1.==是运算符,分两种情况:如果比较的是基本数据类型(int、char、long等),比较的是具体的数值;如果比较的是引用数据类型(类、对象、数组),比较的是内存地址(也就是两个引用是否指向同一个对象)。

2.equals()是Object类的方法,默认实现其实就是==(源码里equals()就是returnthis==obj;),但很多类(比如String、Integer)都重写了equals()方法,重写后比较的是对象的内容,而不是内存地址。

举个实际例子:Strings1=abc;Strings2=newString(abc);这里s1==s2是false(s1指向常量池,s2指向堆内存,地址不同),但s1.equals(s2)是true(内容都是abc)。

注意:重写equals()必须重写hashCode(),否则会导致HashMap、HashSet等集合存储数据时出现异常(比如两个equals()相等的对象,hashCode()不同,会被当成两个不同元素)。

2.String、StringBuffer、StringBuilder的区别?实际开发中怎么选

文档评论(0)

1亿VIP精品文档

相关文档