2025.4.2 阿里控股 一面 55min (挂)
凉凉~ 虽然这老哥人很好,一直笑眯眯的,但是问的我已经汗流浃背了
全是操作系统底层的东西
int 怎么存的?占多少个字节
浮点数0.3能精确表示吗?底层怎么做浮点数相加的?为什么?怎么表示负数的?
有哪些集合?使用场景?
问我使用map的时候需要考虑哪些方面?大小,并发,hashcode 后面还问我?始终不知道他想要我说什么
并发hashmap怎么保证线程安全的?volatile+锁+cas?为什么要在8转红黑树?不能笼统说设计者考虑性能问题,而不是就说说红黑树数据多更快就行了。要从数学分析的角度举例证明,最后没办法只能说hash命中次数计算平均节点查询次数,然后对比红黑数节点命中次数来说明为什么要是8,他后面还追问,这样算按满二叉树来算的话最多4次查询就能命中,而链表需要平均4.5次,为什么不在7的时候就转红黑树?我只能说红黑树有旋转保持平衡的其他性能开销。然后又问我红黑树怎么旋转的?
公平锁和非公平锁底层具体的实现是什么?甚至让你把唤醒 和阻塞的命令都要说一下
java有什么不可重入的锁?
java内存模型?volatile怎么实现指令重排的?内存屏障?内存屏障怎么实现的?为什么要这么实现?这能给我扯到cpu缓存里面去了,后面又问操作系统的缓存问题
只记得这么多了,大部分都是偏os底层的
手撕是juc交替打印 秒了