Java后端面试真题(马士兵体系).docxVIP

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

Java后端面试真题(马士兵体系)

说明:本套试题涵盖Java基础、集合、JVM、多线程、Spring、MySQL、Redis、分布式等高频面试考点,适合校招、社招自测复习。

一、Java基础(每题8分,共40分)

1.简述==和equals()的区别

参考答案:

==是运算符:

对于基本数据类型,比较的是变量存储的值是否相等;

对于引用类型,比较的是对象在堆中的地址是否为同一个。

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

开发中如果需要自定义对象按业务属性判断相等,需要重写equals(),规范上同时建议重写hashCode()。

2.String、StringBuilder、StringBuffer的区别

参考答案:

String:底层是char数组(JDK9以后改为byte数组),被final修饰,字符串不可变。每次拼接都会生成新对象,频繁拼接性能差。

StringBuffer:线程安全,方法加了synchronized锁,多线程环境下字符串拼接推荐,并发场景性能低于StringBuilder。

StringBuilder:线程不安全,没有锁,单线程字符串拼接优先使用,性能最高。

使用场景:少量字符串拼接直接用String

文档评论(0)

1亿VIP精品文档

相关文档