一面:
- hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移?
- Linux的共享内存如何实现,大概说了一下。
- socket网络编程,说一下TCP的三次握手和四次挥手
- 同步IO和异步IO的区别?
- Java GC机制?GC Roots有哪些?
- 红黑树讲一下,五个特性,插入删除操作,时间复杂度?
- 快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少
一面答案参考
阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制
高并发编程系列:NIO、BIO、AIO的区别,及NIO的应用和框架选型
直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例
二面
- 自我介绍,主要讲讲做了什么和擅长什么
- 设计模式了解哪些?
- AtomicInteger怎么实现原子修改的?
- ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用ConcurrentHashMap?
- redis数据结构?
- redis数据淘汰机制?
二面答案参考
架构师进阶之独孤九剑:设计模式详解
高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景
高并发架构系列:Redis的内存回收原理,及内存过期淘汰策略详解
Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别
高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解
高并发架构系列:详解Redis的存储类型、集群架构、以及应用场景
三面(约五十分钟)
- mysql实现事务的原理(MVCC)
- MySQL数据主从同步是如何实现的?
- MySQL索引的实现,innodb的索引,b+树索引是怎么实现的,为什么用b+树做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应。
- 如果Redis有1亿个key,使用keys命令是否会影响线上服务?
- Redis的持久化方式,aod和rdb,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么?
- 遇到最大困难是什么?怎么克服?
- 未来的规划是什么?
- 你想问我什么?
三面答案参考
高并发架构系列:Redis并发竞争key的解决方案详解
高并发架构系列:数据库主从同步的3种一致性方案实现,及优劣比较
阿里P8架构师谈:MySQL行锁、表锁、悲观锁、乐观锁的特点与应用
最全MySQL面试60题和答案