数据结构与算法
-
数组、链表、二叉树(熟练)
-
B+树、红黑树(了解)
-
剑指Offer(熟练),建议刷两遍以上
-
冒泡排序、插入排序、堆排序、快排、归并排序(熟悉)
-
动态规划、分治(拔高可专向突破
操作系统
-
进程、线程、死锁产生与预防
-
虚拟内存
-
IO多路复用(select、pool、epool实现与区别)
计算机网络
-
七层网络模型TCP三次握手、四次挥手以及time-wait的原因
-
TCP与UDP的区别
-
从浏览器输入URL到页面显示所经历的过程
-
HTTP、HTTP1.1、HTTP2
数据库
-
MySQL索引实现与优化
-
索引的实现原理
-
常用的SQL书写
-
ACID的定义与原理
-
隔离级别(不可重复度、可重复读、顺序读、MVCC)
-
悲观锁、乐观锁
JAVA基础
-
Java Object类有那些常见函数
-
final,finally,finalize的区别重载和重写
-
接口和抽象类的区别
-
equals() 和 == 的区别
-
String Integer , valueOf()函数
-
JUC ( AQS CAS ) 重点
-
Collection (List Map Set HashMap HashSet ConcurrentHashMap)
-
IO,NIO,AIO
-
Java 8 新特性 (Stream 函数式编程)
-
Error,Exception
-
接口、抽象类、内部类、继承、多态
-
StringBuilder、StringBuffer的实现与使用区别
-
JAVA集合:HashTable与HashMap的区别、HashMap的实现、ConcurrentHashMap
-
synchronized与Lock的区别、实现原理、CAS的实现与使用
-
JAVA线程的实现,Runnable、Callable、Thread的区别与使用场景
-
JAVA线程池的实现与应用
-
JAVA内存模型(堆、方法区、方法栈、本地方法栈、程序计数器)
-
JAVA中的OOM问题,如何排查和解决OOM
-
JAVA类的加载过程
-
JVM垃圾收集器
框架学习
-
Spring:用到的设计模式、AOP和IOC的实现、动态代理的实现、Spring中对象的加载过程
-
Mybatis:动态SQL、缓存机制
-
Redis :常用的数据类型及其实现原理、RDB和AOP备份、主从同步
分布式
-
分布式协议(2PC、3PC、PAXOS、Raft、POW、POS、DPOS)
-
分布式事务(TCC)