1、java基础java
1.final修饰方法、类、成员变量的特色mysql
2.集合框架 ArrayList,HashMap,ConcurrentHashMap(这三个问到的频率最高)面试
知识点:底层数据结构,知道哪些是线程安全的,线程不安全的,最好阅读一下源码,构造方法有几个,默认参数。(jdk1.8和以前的版本区别)redis
ConcurrentHashMap 为何是安全的?看一下put方法;能说出来细节,锁加在什么位置,hash冲突怎么 处理;扩容之后存储顺序位置会发生什么变化。
算法
3.多线程 Lock和Synchronized,join和yieldspring
知识点:二者之间的区别(进阶版:lock的底层实现原理AbstractOwnableSynchronizer,synchronized底层monitor对象)公平锁和非公平锁, Synchronized加在静态方法上和非静态方法上用的锁是什么,补充CAS知识点sql
4.atomic包下面的AtomicInteger等(保证原子性),volatile保证可见性(指令重排序、内存屏障),ThreadLocal数据库
5.线程池有几种,区别,详细了解一下构造方法的各个参数。进阶:实现线程池的思路设计模式
6.java IO和NIO的区别tomcat
7.java反射机制,在哪儿用到了
8.深克隆和浅克隆
2、数据结构
1.算法:冒泡排序(至少掌握一种排序算法)、二分法查找
2.手写一个栈 先进后出
3.二叉树、红黑树
3、框架
1.Spring:AOP,IOC 最好能翻阅spring源码,用到的设计模式,隔离级别,传播属性
2.Mybatis中的$和#的区别
3.dubbo:工做原理,集群容错,负载均衡
4、数据库
1.mysql innodb引擎特色;索引B+tree,sql优化,sql分析方法;
2.redis 数据类型,主从原理,持久化方式,事务;
5、jvm
1.gc算法:标记整理、复制、压缩
2.堆、栈、方法区
6、调优
1.tomcat NIO,线程池。
7、线上问题分析方法
1.top命令,jstat,jmap等
8、计算机网络
1.三次握手、四次挥手能画出图,以及各个状态表明的意义
2.http和https
3.TCP和UDP