Java开发高频面试题(含真实口语化详细答案).docxVIP

  • 1
  • 0
  • 约5.25千字
  • 约 9页
  • 2026-08-24 发布于河北
  • 举报

Java开发高频面试题(含真实口语化详细答案).docx

Java开发高频面试题(含真实口语化详细答案)

一、Java基础核心(必问)

1.说说==和equals的区别?

答案:

==是比较运算符,对于基本数据类型,直接比较值是否相等;对于引用类型,比较的是对象的内存地址,也就是判断是不是同一个对象。

equals是Object类的方法,默认情况下和==效果一样,也是比较地址。但是像String、Integer这些类都重写了equals方法,重写后是直接比较对象的内容值,不看地址。

日常开发里,字符串对比内容一律用equals,基本类型用==。

2.String、StringBuilder、StringBuffer的区别?

答案:

String是不可变字符串,一旦创建就不能修改,每次拼接、修改都会生成新的字符串对象,频繁操作非常耗内存。

StringBuilder和StringBuffer是可变字符串,底层是char数组,修改不会新建对象。

唯一区别就是线程安全:StringBuffer所有方法加了synchronized,线程安全但性能低;StringBuilder无锁,线程不安全,性能高。

实际开发用法:单线程字符串拼接一律用StringBuilder;多线程共享变量拼接才用StringBuffer;常量、少量不变的字符串用String。

3.重写和重载的区别?

答案:

文档评论(0)

1亿VIP精品文档

相关文档