小红书java一面

1. 很多人说 `HashMap` 的实现是“数组+链表/红黑树”。当一个新元素放进来的时候,它具体是怎么决定自己落在数组的哪个位置?又是在什么时候,链表会“升级”成红黑树?

2. 如果 `HashMap` 在多线程下使用,可能会出什么问题? `ConcurrentHashMap` 是如何解决这些问题的?它的实现比 `Hashtable` 好在哪里?

3. 很多并发工具的底层都用到了CAS(Compare-And-Swap)操作。你能用大白话解释一下CAS是怎么工作的吗?它为什么被称为“乐观锁”?

4. 假设有一个单例模式的实现,用了“双重检查锁定”。为什么给实例变量加上 `volatile` 关键字是绝对必要的?不加的话,在多线程环境下可能会发生什么奇怪的问题?

5. `synchronized` 和 `ReentrantLock` 都是锁,我们应该怎么选?能不能举一个场景,在这个场景下用 `ReentrantLock` 会比用 `synchronized` 方便得多?

6. 当我们排查线上一个“慢”请求时,问题可能出在很多环节。你能从一个用户在浏览器里输入网址开始,到页面最终展示出来,把整个流程串起来,并指出每个环节(比如DNS、TCP、服务器处理、浏览器渲染)最常见的性能瓶颈是什么吗?

7. TLS/SSL 握手的时候,用了非对称加密来商量后续通信要用的对称密钥。为什么这么麻烦?直接一直用非对称加密来通信不好吗?

8. TCP 四次挥手关闭连接时,主动关闭方最后会进入一个 `TIME_WAIT` 状态。这个状态是干嘛的?为什么要等那么久才彻底关闭?

9. TCP 连接的两端都有一个“窗口”的概念来做流量控制。这个“窗口”具体是怎么工作的?它和为了防止网络堵塞的“拥塞控制”是一回事吗?

10. Java的类加载为什么要设计成“双亲委派”这么一个有点绕的模式?它主要是为了解决什么问题?

11. 我们在配置线程池的时候,经常要设置核心线程数和最大线程数。这两个参数在什么情况下会需要设置成不一样的值?这跟我们选择什么样的任务队列有关系吗?

12. Redis 有好几种持久化方式。假设你用Redis做缓存,能接受重启后丢失一两分钟的数据,但特别看重Redis的读写性能。在这种场景下,你会选 RDB 还是 AOF?为什么?

13. 现在很火的“以图搜图”功能,背后其实就是向量数据库在起作用。传统数据库用B+树索引来快速查找精确值,向量数据库是怎么做到快速查找“相似”向量的?它的索引原理和传统数据库有什么根本不同?

14. 核心代码模式算法题:不同路径的数目(一)

全部评论
感觉听面试官说的麻烦,其实很简单都
14 回复 分享
发布于 08-17 11:30 上海
秋招的面试还是难啊,问的太细了
3 回复 分享
发布于 08-17 10:35 北京
这面试题记录的真详细
2 回复 分享
发布于 08-28 17:20 湖南
mark
1 回复 分享
发布于 08-20 11:56 江苏
mark
1 回复 分享
发布于 08-16 12:20 广东
链表性能不如红黑树的时候转红黑树呗
点赞 回复 分享
发布于 09-17 21:45 北京
mark
点赞 回复 分享
发布于 09-16 20:08 吉林
mark
点赞 回复 分享
发布于 09-16 12:18 吉林
mark
点赞 回复 分享
发布于 09-15 01:00 浙江
m
点赞 回复 分享
发布于 09-14 19:12 四川
mark
点赞 回复 分享
发布于 09-12 18:36 广东
mark
点赞 回复 分享
发布于 09-12 16:05 上海
m
点赞 回复 分享
发布于 09-11 19:25 福建
m
点赞 回复 分享
发布于 09-11 00:51 广东
666
点赞 回复 分享
发布于 09-10 23:35 安徽
mark
点赞 回复 分享
发布于 09-08 18:25 北京
mark
点赞 回复 分享
发布于 09-08 11:23 湖北
链表何时转红黑树?
点赞 回复 分享
发布于 09-06 15:49 河南
mark
点赞 回复 分享
发布于 09-06 14:25 江苏
mark
点赞 回复 分享
发布于 09-03 18:41 重庆

相关推荐

评论
76
511
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务