#晒一晒我的offer# 快手意向已接,整理一波面经,以及向大家推荐12306这个贼受面试官欢迎的项目。一面:- 什么是Redis的IO多路复用- Redis常用结构有哪些?zset底层数据结构是什么- Redis缓存击穿、穿透和雪崩- 缓存一致性的方式?不同场景适合哪种- MySQL B+树的高度有几层?为什么- MySQL事务特性和隔离级别- MySQL可重复读解决了幻读问题吗?如何解决的- MySQL MVCC的原理是什么- 在可重复读的情况下,更新数据后,select获得新数据还是旧数据- CHM和HashMap如何保证线程安全- CHM在读取时是否加锁- Synchronized和RLock的区别和原理- Synchronized锁升级,偏向锁是如何实现的- 设计一个热卖商品场景- 发明专利和研电赛了解吗- 实习期间的收获二面:- 参与Hipp4j开源项目都做了什么?- 如何实现线程安全ThreadLocal?了解改进框架或工具吗- 为什么ThreadLocal使用开放地址法解决哈希冲突- InheritableThreadLocal什么时候拷贝值?线程池中能使用吗- Java线程池的阻塞队列有哪些?适用场景是什么- Java线程池如何实现线程的自动回收- JVM什么时候会执行Full GC- JVM回收年轻代速度受什么影响- JVM如何解决跨代引用的垃圾回收- G1解决了CMS的什么问题?两者场景有何不同- JDK8默认的垃圾回收器是什么- Redis Hash如何进行扩容- Redis如何实现分布式锁?是否会失效- Redis改变Key在全局哈希表中槽的位置,为什么用户仍能找到Key而不丢- 如何确保Kafka数据不会丢失?如何保证消费顺序12306面试题:- 为什么列车数据搜索用Redis而不是ES- 列车站点余票如何保证实时- 如何解决用户注册缓存穿透问题- 如何实现数据库和缓存的一致性- 如何保障海量用户购票场景- 订单号如何全局唯一- 项目中分库分表是怎么用的- 为什么使用分库分表基因算法12306解决了项目无亮点和被广泛使用问题,马哥项目中引入了大量优秀设计,需要认真学习。好处是面试官是真感兴趣,基本都是企业标准方案。项目:Gitee搜12306