一面 4.24
1.Java基础
(1)基本数据类型?占几个字节?
(2)包装类和基本数据类型转换?原理?
(3)为什么浮点数运算的时候会有精度丢失的风险?如何解决(BigDecimal+字符串)
(4)hashCode和equals使用?
(5)HashMap是线程安全的吗,为什么不安全?底层是什么?有版本之间的区别吗?如何实现线程安全呢?
(7)IO模型?举例?
2.JVM
(1)Minor GC(Young GC)和Full GC的区别?
(2)如何判断对象能否被回收?
(3)JVM中运行时数据区?1.7和1.8有什么区别?
(4)为什么HotSpot要把堆分为新生代和老生代?
(5)CMS和G1的区别?了解最新的那个垃圾回收器ZGC吗?
(6)创建对象的过程?
3.并发
(1)volatile关键字作用?保证原子性吗?如何保证原子性呢?线程安全吗?
(2)synchronized关键字作用?底层?
4.Redis
(1)数据类型以及特点?
(2)ZSet如何清理、ZSet底层是什么?
(3)Redis持久化?
(4)Redis如何判断过期?过期数据删除策略?
5.MySQL
(1)说说MySQL?
(2)四种隔离级别?(因为我说了默认的是可重复读)
(3)为什么索引用B+树不用B树?
(4)索引类型有哪些?你用过哪些?举例
(5)bin log和redo log的区别?
(6)如何保证恢复数据一致性?
6.项目
(1)为什么使用RabbitMQ?在这个情境中如何使用?
(2)为什么使用Redis?为什么要用布隆过滤器?
7.反问
(1)部门业务
(2)后续周期