杭州互联网大厂真实面试题(含详细实战答案).docxVIP

  • 0
  • 0
  • 约4.25千字
  • 约 6页
  • 2026-08-12 发布于河北
  • 举报

杭州互联网大厂真实面试题(含详细实战答案).docx

杭州互联网大厂真实面试题(含详细实战答案)

适用:阿里、网易、字节杭州、菜鸟、钉钉后端开发面试(1-3年、3-5年通用)

一、Java基础高频原题(阿里/钉钉一面必问)

1、JDK1.8HashMap链表转红黑树阈值为什么是8?加载因子0.75的依据是什么?

参考答案:

首先阈值8不是随便定的,是官方根据泊松分布统计出来的。哈希冲突是小概率事件,链表长度到8的时候,哈希碰撞的概率几乎趋近于0,大概率是恶意哈希攻击或者极端哈希不均匀。

如果阈值太小,比如4、5,频繁转树、退树,转换开销特别大;如果阈值太大,链表过长,查询效率从O(1)退化成O(n),性能暴跌。

加载因子0.75是空间和时间的折中。加载因子太高,数组填太满,冲突暴增;太低,大量空间浪费。0.75是官方实测下来,空间利用率和查询速度平衡最好的数值。

2、ArrayList和LinkedList实际业务场景怎么选?不要背诵优缺点

参考答案:

日常业务90%场景我都用ArrayList。我们业务基本都是批量查询、遍历、根据下标拿数据,极少有中间频繁增删的场景。

只有一种情况我会用LinkedList:高频在集合头部、中间频繁插入、删除,且集合数据量很大。但实际开发中,这种场景我一般直接用队列或者双端队列替代,基本不会手动用LinkedList。

补充:ArrayList扩容会有拷贝损耗,但业务层可以初始化指定

文档评论(0)

1亿VIP精品文档

相关文档