Java高频面试题(真实面试版·含详细答案解析).docxVIP

  • 1
  • 0
  • 约3.93千字
  • 约 7页
  • 2026-07-27 发布于河北
  • 举报

Java高频面试题(真实面试版·含详细答案解析).docx

Java高频面试题(真实面试版·含详细答案解析)

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

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

标准答案:

==是比较运算符,基本数据类型比较的是数值本身,引用数据类型比较的是对象的内存地址;

equals是Object类的方法,默认实现和==一致,比较对象地址,但像String、Integer这类常用类都重写了该方法,重写后是比较对象的内容值。

详细解析:

1.基本类型(int、long、boolean等)只能用==,没有equals方法;

2.自定义对象如果不重写equals,调用的是Object原生方法,依然比较地址;

3.日常开发中,字符串对比必须用equals,避免地址判断导致的bug。

2.String、StringBuilder、StringBuffer的区别?

标准答案:

String是不可变字符串,每次拼接都会生成新对象,效率最低;

StringBuilder可变字符串,线程不安全,拼接效率最高,单线程使用;

StringBuffer可变字符串,方法加了synchronized锁,线程安全,多线程使用,效率偏低。

详细解析:

1.String底层是final修饰的char数组(JDK9后是byte数组),一旦创建无法修改;

2.循环拼接字符串绝对不能用String,会产生大量废弃对象,触发GC

文档评论(0)

1亿VIP精品文档

相关文档