一面
1、说说对JVM的理解?
2、treemap和HashMap的区别?
(1)HashMap是通过hashcode()对其内容进行快速查找的;HashMap中的元素是没有顺序的;TreeMap中所有的元素都是有某一固定顺序的,如果需要得到一个有序的结果,就应该使用TreeMap;
(2)HashMap继承AbstractMap类;覆盖了hashcode() 和equals() 方法,以确保两个相等的映射返回相同的哈希值;TreeMap继承SortedMap类;他保持键的有序顺序;
(3)HashMap:基于hash表实现的;使用HashMap要求添加的键类明确定义了hashcode() 和equals();为了优化HashMap的空间使用,可以调优初始容量和负载因子;TreeMap:基于红黑树实现的;TreeMap就没有调优选项,因为红黑树总是处于平衡的状态;
3、多线程的五大状态?
新建状态、就绪状态、运行状态、阻塞状态、线程结束
4、MySQL主键和索引的区别?
5、聊聊做的一些项目
6、如何实现session共享?用Redis该如何实现?
7、缓存击穿的概念和解决方案?
8、聊聊微服务,以及微服务之间是如何进行管理的
二面
1、Java中nio和io的区别?常用的类有哪些?
2、Java里面的同步锁了解吗? CountDownLaunch和Cylicbarrior的区别,分别在什么场景下使用?
3、JVM的内存结构,哪些是共享的,哪些是线程私有的? Java虚拟机里堆栈分别存放什么?
4、如何实现一个线程池?
5、Java的类加载在哪些情况下会触发?
6、手写代码:快速排序,单利模式, 画一个工厂模式和装饰者模式的UML类图
7、AOP的实现原理
8、怎么优化慢查询?
(1)索引没起作用的情况,使用LIKE关键字的查询语句
(2)优化数据库结构;
(3)分解关联查询;
(4)优化LIMIT分页;
9、Java的锁有哪些?可重入锁和不可重入锁的区别?
10、Lock和Synchronized的区别?他们都是可重入锁吗?哪个效率更高?
11、手写SpringMVC DispatcherServlet的大致实现?
三面
1、聊一聊平时的项目并发经验
2、Redis的数据结构? 线程模型? Redis的数据淘汰机制?
3、读过Redis的源码吗?
4、MySQL实现事务的原理
5、MQ底层原理的实现?
6、数据库事务acid,事务操作,怎么加锁?分布式系统锁?
7、什么情况下会发生雪崩?如何解决?
四面
1、介绍一些并发项目
2、技术含量较高的项目,从架构设计到部署问了一遍
3、高并发架构的设计思路
全部评论
(1) 回帖