Java集合容器
1、HashMap的实现原理、HashMap在JDK1.7和1.8中有哪些不同
2、HashMap底层使用了红黑树、为什么不适用二叉平衡树?红黑树还有哪些你知道的应用场景
Spring相关
1.Spring的优缺点
2.Spring框架中都用到了哪些设计模式
3.什么是SpringIOC ,IOC有什么作用,实现机制是什么?
4.BeanFactory 和 FactoryBean有什么区别,BeanFactory和ApplicationContext有什么区别
5、@Autowired和@Resource之间的区别
6、什么是Spring AOP,JDK动态代理和CGLIB动态代理有什么区别
7、SpringBoot自动装配原理
8、怎么理解Spring、SpringMVC、SpringBoot、SpringCloud之间的关系
JVM相关
9、JVM的主要组成部分、运行时数据区的的部分
10、JVM如何判断对象是否可以被回收,常见的垃圾回收算法
11、JVM有哪些垃圾回收器
12、CMS和G1有什么区别
13、简述java内存分配与回收策略以及MinorGC和MajorGC
14、什么是双亲委派模型?为什么使用这种模型?能不能打破双亲委派,如何打破?
15、实际工作中有没有遇到过JVM相关的问题,如何处理的
MySql相关
16、Mysql的存储引擎知道哪些?MyISAM和InnoDB的区别
17、InnoDB底层索引的数据结构,为什么使用B+树,不适用B树或者二叉树
18、创建索引应该注意些什么?
19、索引是不是越多越好,使用索引查询一定能提高查询性能吗
20、什么是最左前缀原则?什么最左匹配原则
21、什么是索引下推?什么是回表
22、什么是脏读、幻读、不可重复读
23、关注过业务系统里面sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过
24、分库分表有没有了解过
25、Mysql如何保证数据不丢失
Redis相关
26、Redis为什么快
27、MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?Redis的内存淘汰策略有哪些
28、如何实现分布式锁
29、为什么要用缓存?是不是所有系统都需要引入缓存?为什么使用Redis而不用其他的缓存如memcached?
30、什么是缓存穿透、缓存击穿、缓存雪崩,如何避免
31、如何保证缓存与数据库双写时的数据一致性
多线程相关
32、创建线程有哪些方式
33、Executor创建的线程池有哪些?有什么区别?为什么阿里规范中不推荐使用Executor创建线程池
34、自己创建过线程池吗?
35、synchronized关键字的作用,项目中有使用过吗?和Lock有什么区别
36、synchronized锁审计原理