一、Java基础
Java基础
- java多线程(要求手写)
- java线程池(要求手写)
- java集合(源码级别)
- JAVA反射机制源码,泛型
- JAVA异常处理机制
- 值传递引用传递
- 基础类型以及占用长度
- lambda表达式问得不多
- JAVA三目运算符注意事项
- JAVA注解工作原理,以及生命周期
- java断言
Java虚拟机
- java 内存模型
- java 类加载机制
- java 垃圾回收机制
Java性能调优
二、设计模式
- 六大原则
- 23种设计模式
三、框架使用
Spring容器框架(源码)
- AOP(原理)
- IOC(生命周期,加载过程,原理)
- Spring Session
- Spring 异常处理机制
- Spring 事务(原理,传播机制,隔离级别)
MVC框架
- SpringMVC框架
- 生命周期
- 加载流程
- 分发机制
- 跨域问题产生和解决
- 同一协议,同一ip,同一端口,三同中有一不同就产生了跨域。
- 跨域问题是浏览器同源策略造成的,如果我们没有设置Header头三件套的话(‘Access-Control-Allow-*’:)那么对一切跨域请求操作浏览器都是拒绝的。
Access-Control-Allow-Origin:* Access-Control-Allow-Methods:POST Access-Control-Allow-Headers:x-requested-with,content-type
- Struts2框架
ORM框架
- Mybatis框架
- PageHelper物理分页原理
- Mybatis的传参为空时,报错如何解决?Mybatis字段为JSON格式,如何解析成一个对象?有一个字段,包括转义字符,无法直接入库,save和select都需要转换一下,如何解决?
- 自定义一个类,实现TypeHandler接口
- 在resultMap中使用,即可配置age的默认值(上述代码中age的默认值为"")
<resultMap id="list" type="java.util.LinkedHashMap"> <result property="name" column="name" /> <result property="sex" column="sex" /> <result property="age" column="age" typeHandler="com.demo.EmptyStringIfNull"/> </resultMap>
- SpringDataJPA框架
- JOOQ
- Hibernate框架
SpringBoot框架
- 启动流程
- SpringBoot的理解
分布式服务场景下的框架
四、数据库
- Mysql数据库
- 数据库引擎类型
- 索引
- 索引类型
- 索引结构
- 索引存储位置
- 多列索引
- 索引失效条件
- 创建索引的原则
- 主从复制的机制
- 数据库的三范式
- 数据库的事务机制
- Sql执行顺序
- 查询优化
- 手写SQL
- Memcached、Redis非关系型数据库
五、 消息队列Kafka
- kafka原理
- kafka的一些命令
- kafka的流程原理图
- kafka保证顺序执行
- kafka保证消息不丢失,会被消费
- kafka保证消息的可达
- kafka的acks=1
- kafka的offset
- 消息的起始位置
六、Linux命令
- 修改用户权限,awk,telnet等等其他常用命令
七、数据结构和算法
- 数据结构
- 队列,栈的区别
- 链表(如何判断一个链表为循环链表)
- 二叉树的先序后序遍历
- 算法
- 排序算法
- 冒泡排序(多次要求手写)
- 快速排序,插入排序等(可选择写,加分)
- 查找算法
- 二分查找等(要求写)
- 排序算法
八、网络协议
- 分层模型,各层的职责,又如解析端口是在哪一层等。
- 【Http协议:详解】
- 三次握手和四次挥手
其他
- Maven项目构建管理
- 一些常用的命令
- SpringSecrity 安全框架
- Quartz 作业调度框架
- Log4J 分布式文件系统
- Swagger2接口测试框架
- Jenkins持续集成框架
- Nginx问题