一面
- 自我介绍
- map怎么实现hashcode和equals,为什么重写equals必须重写hashcode
- 使用过concurrent包下的哪些类,使用场景等等。
- concurrentHashMap怎么实现?concurrenthashmap在1.8和1.7里面有什么区别
- CountDownLatch、LinkedHashMap、AQS实现原理
- 线程池有哪些RejectedExecutionHandler,分别对应的使用场景
- 多线程的锁?怎么优化的?偏向锁、轻量级锁、重量级锁?
- 组合索引?B+树如何存储的?
- 为什么缓存更新策略是先更新数据库后删除缓存
- OOM说一下?怎么排查?哪些会导致OOM?
- OSI七层结构,每层结构都是干什么的?
- java的线程安全queue需要注意的点
- 死锁的原因,如何避免
二面
- jvm虚拟机老年代什么情况下会发生gc,给你一个场景,一台4核8G的服务器,每隔两个小时就要出现一次老年代gc,现在有日志,怎么分析是哪里出了问题
- 数据库索引有哪些?底层怎么实现的?数据库怎么优化?
- 数据库的事务,四个性质说一下,分别有什么用,怎么实现的?
- 服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免DDOS攻击请求打到少数机器
- volatile讲讲
- 哪些设计模式?装饰器、代理讲讲?
- redis集群会吗?
- mysql存储引擎
- 事务隔离级别
- 不可重复度和幻读,怎么避免,底层怎么实现(行锁表锁)
三面
- 项目介绍
- 分布式锁是怎么实现的
- MySQL有哪几种join方式,底层原理是什么
- Redis有哪些数据结构?底层的编码有哪些?有序链表采用了哪些不同的编码?
- Redis扩容,失效key清理策略
- Redis的持久化怎么做,aof和rdb,有什么区别,有什么优缺点。
- MySQL数据库怎么实现分库分表,以及数据同步?
- 单点登录如何是实现?
- 谈谈SpringBoot和SpringCloud的理解
- 未来的技术职业怎么规划?
- 为什么选择阿里?