Java面试题(知网方向).docxVIP

  • 1
  • 0
  • 约5.47千字
  • 约 10页
  • 2026-11-16 发布于河北
  • 举报

Java面试题(知网方向)

说明:题目偏向后端基础、JVM、集合、并发、IO、数据库交互、项目实战,适配文献检索、知网类文献平台后端开发面试

一、基础题

1.String、StringBuilder、StringBuffer的区别?

答案:

String:底层是char数组(JDK9之后改为byte数组),被final修饰,字符串不可变。每次拼接都会生成新对象,频繁字符串拼接会产生大量垃圾对象,效率低。适合字符串内容不经常修改的场景。

StringBuilder:可变字符序列,线程不安全,方法没有加synchronized锁。单线程下字符串拼接优先使用,性能最高。

StringBuffer:可变字符序列,线程安全,核心方法使用synchronized修饰,多线程环境下共享字符串操作时使用,加锁带来额外开销,性能低于StringBuilder。

使用场景总结:

少量拼接:String

单线程大量拼接:StringBuilder

多线程并发拼接:StringBuffer

2.==和equals()的区别

答案:

==是运算符:

基本数据类型:比较值是否相等;

引用数据类型:比较两个对象的内存地址是否相同。

equals()是Object类中的方法,默认实现和==一致,比较对象地址。很多类(String、Integer)重写了equals,用来比较对象的内容是否相等。

开

文档评论(0)

1亿VIP精品文档

相关文档