一、java部分
1、集合:集合的结构图、常用集合的特性,包括是否可以为null、是否允许重复元素、是否有序
2、线程:创建线程的方式?每种方式之间的异同点
3、线程池:如何创建线程池?常用的线程池有哪些?创建线程池需要的参数有哪些及含义?在深入还要掌握每种参数有哪些类型可选(比如队列有哪几种?区别是什么?拒绝策略有哪些并知道怎么使用?)
4、ThreadLocal类的使用:ThreadLocal使用目的(解决什么问题)?原理是什么? 这个很常用,很实用。
5、JVM内存划分?JVM堆、方法区、栈、常量池各存放什么?及哪一块的内存共享哪些不共享?常量池内存用的方法区的内存。
类加载流程?什么是双亲委派机制?
二、框架部分
1、spring:spring容器如何创建?spring事务传播特性?spring事务隔离级别?spring IOC和AOP?常用的设计模式?
2、springMVC:springMVC原理?常用注解?springMVC容器和spring容器的区别?
3、mybatis:#和&的区别?一级缓存原理?二级缓存原理及配置方式?
三、数据库
1、三范式?BCNF范式?存储引擎有哪些及各自的优缺点及适用场景?数据库事务、ACID及隔离级别?不考虑隔离性容易产生哪几种情况?mysql数据库索引结构?常用的索引有哪些?mysql对in和exists的用法的理解?
2、性能分析:如何开启慢查询?如何使用show Profile进行sql分析?如何通过Explain+SQL分析性能?
3、锁:什么是行锁、表锁、读锁、写锁、间隙锁?
4、加强实际对问题分析书写SQL的能力(group by和having的使用很常用)。
四、javaWeb
1、什么是servlet,servlet的生命周期?
2、session和cookie及之间的联系?
3、JSP八大隐含对象?
4、JSP四个域对象的作用范围?
5、post和get的区别?
6、转发和重定向的区别?
7、拦截器和过滤器的区别?
五、附加
1、dubbo负载均衡策略?
2、spring boot自动装配原理?
3、redis如何实现分布式缓存?
4、单点登录原理?
5、Tomcat如何优化?
6、常用Linux命令?
7、后台系统怎样防止请求重复提交?
8、maven的依赖、继承及聚合?
9、版本控制Git暂存区与工作区的区别?Git如何创建、回退及撤销版本?
分布式技术:
分布式缓存、分布式消息、分布式锁、分布式事务框架(LCN、Fescar(seata))、分布式常用集群搭建