Java开发面试题及详细答案(真实面试版).docxVIP

  • 1
  • 0
  • 约5.95千字
  • 约 8页
  • 2026-10-13 发布于河北
  • 举报

Java开发面试题及详细答案(真实面试版).docx

Java开发面试题及详细答案(真实面试版)

一、Java基础核心面试题

1.说说==和equals的区别

这是Java最基础的高频考点,核心区别是比较的内容不一样:

==是运算符,针对基本数据类型和引用类型有不同逻辑:基本类型比较的是数值本身;引用类型比较的是对象的内存地址。

equals是Object类的方法,默认逻辑和==一致,也是比较对象地址。但像String、Integer、自定义实体类都会重写这个方法,重写后不再比较地址,只比较对象的内容、属性值。

举个实际场景:newString(abc)==abc结果是false,因为地址不同;但两者equals对比是true,因为字符串内容一致。

2.String、StringBuilder、StringBuffer的区别

核心差异在可变性、线程安全、性能三个维度:

String是不可变字符串,底层是final修饰的字符数组。每次拼接、修改字符串都会生成新对象,频繁操作会产生大量垃圾对象,性能最差。适用于少量字符串操作、常量定义场景。

StringBuilder是可变字符串,底层数组可扩容,操作不会新建对象。非线程安全,多线程并发操作会出现数据错乱,但单线程下性能最好,日常开发90%场景都用它。

StringBuffer同样是可变字符串,所有方法都加了synchronized锁,线程安全

文档评论(0)

1亿VIP精品文档

相关文档