阿里后端高频面试题及详细真实答案(无模板、贴合实战)_1.docxVIP

  • 2
  • 0
  • 约6.21千字
  • 约 8页
  • 2026-10-05 发布于河北
  • 举报

阿里后端高频面试题及详细真实答案(无模板、贴合实战)_1.docx

阿里后端高频面试题及详细真实答案(无模板、贴合实战)

说明:所有题目为阿里近年真实面试高频题,答案摒弃书面模板,贴合一线开发实操经验,适配阿里P5-P7面试场景,语言口语化、接地气,无生硬套话。

一、Java基础核心(必问)

1、String为什么不可变?底层实现、优缺点及实战坑点

参考答案:

String不可变核心是底层字符数组被privatefinal修饰,且没有提供任何修改数组的对外方法。一旦初始化赋值,字符内容就无法被更改,所有拼接、截取操作都会生成新的String对象。

底层源码层面,JDK9之前使用char[]存储字符,JDK9之后优化为byte[],根据字符编码自适应存储,节省内存。

优点:第一,线程安全,多线程并发访问无需加锁;第二,支持字符串常量池复用,减少重复对象创建,节省内存;第三,作为HashMap的key更稳定,哈希值不会变动,避免映射失效。

缺点与实战坑点:频繁字符串拼接场景下性能极差,会产生大量无效临时对象,触发频繁GC。日常开发中,循环拼接必须用StringBuilder,多线程拼接场景用StringBuffer。

2、ArrayList和LinkedList底层区别、适用场景、并发问题

参考答案:

ArrayList底层是动态扩容的数组,默认初始容量10,扩容时扩容1.5倍,支持随机访问,通过下标查询

文档评论(0)

1亿VIP精品文档

相关文档