面试时间
面试时间:2020-12-14 11:00GMT+08:00
项目
怼我项目
基础
让我手写一个ArrayBlockingQueue,这里我脑子抽了,用了现成的链表实现FIFO,5 分钟搞完,我还在想我真尼玛聪明。然而,两分钟以后我戴上了痛苦面具....
问我为什么用链表不用数组,我嘴贱说了一句链表实现 FIFO 方便嘛,还有现成的 API
他炸了,开始怼我,说:你不是说你看过 JDK 源码吗?这个东西在 JDK 里面是用的链表?你这样写的话,空间复杂度能低到 JDK 里面的ArrayBlockingQueue那种程度么?我让你写这个不是想考察对资源的控制,就是想考察一下你能不能写出循环数组..
我:阿巴阿巴阿巴
Q: CMS 收集器什么时候会变成串行的...
这里我说初始标记的时候会短暂的造成串行,完全没想到浮动垃圾太多会触发串行老年收集器,卒
看我结巴了,又开始问我 Redis 了
Q:Redis 的分布式锁你了解么?假设现在没有外挂式的插件,就让你用原生的 Redis 命令实现一个分布式锁,怎么搞?
我这里说一下抢占式写入然后逻辑获取锁的过程,一步一步细化
Q:刚刚你说的这些命令好像都不是原子性的,会出现什么问题呢?
我说用 lua 脚本可以实现原子性操作,他又问除了 lua 脚本还有没有什么原子命令
我说原子命令好像只有两个,一个直接加一,一个直接减一的命令,其他的忘记了
Q:zset 底层是那些数据结构?
压缩列表和跳表..
后面还问了些啥我忘了..
写了个 sql,问我应该怎么建索引
类似select * from A where A.a = ? order by a.b
最后问了一些 TCP 状态机的问题,问 timewait 是哪一边会产生的状态
回答完之后我大概知道凉了,因为我在讲的时候感觉他已经不太想听了
最后问我一个微电子的干嘛想不通要来做软件?让我在学校好好学习(笑),再多补补基础知识.......
太久之前面试的了,能记起来的就这些了,还有一些小问题想起来了再补
写在最后
刚好一个小时,最后跟我说了一句感谢我来参加面试,彻底凉
全部评论
(10) 回帖