淘宝Java后端高频面试题及详细答案(实战版).docxVIP

  • 0
  • 0
  • 约5.37千字
  • 约 9页
  • 2026-11-01 发布于河北
  • 举报

淘宝Java后端高频面试题及详细答案(实战版).docx

淘宝Java后端高频面试题及详细答案(实战版)

一、Java基础高频题

1.==和equals的区别?String类为什么重写equals?

答案:

1)==是运算符,比较两个场景:基本数据类型比较数值是否相等;引用类型比较对象的内存地址是否相同。

2)equals是Object类的方法,原生默认和==逻辑一致,也是比较内存地址。

3)String、Integer等包装类重写了equals方法,不再比较地址,而是直接比较对象的内容值。

淘宝业务中大量使用字符串做订单号、用户ID、状态标识,如果不重写equals,内容相同的不同字符串对象会判定不相等,会引发订单匹配、状态判断等业务bug,所以String必须重写equals和hashCode。

2.String、StringBuilder、StringBuffer的区别?线上场景如何选择?

答案:

1)String:不可变字符串,每次拼接都会生成新对象,频繁拼接会产生大量垃圾对象,性能差。

2)StringBuilder:可变字符串,线程不安全,效率高。

3)StringBuffer:可变字符串,加了synchronized锁,线程安全,效率低。

线上使用规范(淘宝常用):

单线程场景(接口业务处理、参数拼接)统一用StringBuilder;多线程共享变量场景才用String

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档