一面:
- HashMap实现原理,ConcurrentHashMap实现原理
- 红黑树,为什么允许局部不平衡
- TCP,UDP区别,为什么可靠和不可靠
- 一次HTTP请求的全过程,包括域名解析、定位主机等
- TCP三次握手
- MySQL事务是什么?四大特性,四大隔离级别
- ConcurrentHashMap和Hashtable区别
- spring IOC和AOP,以及各有什么优点
- 有哪几种常用的线程池
- 什么情况下使用Runnable和Thread创建线程,Runnable和Callable的区别
- 线程方法中的异常如何处理,副线程可以捕获到吗
- synchronized和锁的区别,什么情况下使用synchronized和ReentrantLock
- JVM的对象分配在哪个区,Class对象分配在哪个区
二面:
- 常用的设计模式介绍:单例模式、装饰者模式等
- Java会出现内存溢出吗?什么情况下会出现?
- 双亲委派模型,为什么这样做?
- 对象什么情况下进入老年代?
- 快速排序说一下过程
- AOP实现原理:动态代理
- BIO、NIO(如何实现的)、AIO
- 消息中间件有哪些?他们之间的优劣势?
- Redis,持久化框架
- 栈和队列
- 垃圾回收算法
- MySQL的索引
- Tomcat 类加载器
- OOM内存泄漏,什么情况下会出现,如何排查
三面:
- 介绍你实践的性能优化案例,以及你的优化思路
- 微服务和SOA的区别,优劣势
- SQL慢查询的优化方案,索引和表的优化方案。
- MySQL与MongoDB的区别,海量数据的存储
- 缓存框架,例如Redis、Memcached之间的区别,优劣势比较
- 请描述一致hash算法
- 分布式session的共享方案有哪些,有什么优劣势
- 高并发情况,系统的优化方案有哪些,以及优先级排序。
面试总结