由于公司内部原因,2018年感觉自己可能会换个新环境;虽然时间尚未确定,但还是得提前做好防范,毕竟面试复习是需要时间好好准备才能拿到自己理想的offer.打算从清明节之后开始好复习基本知识要点,先整理下复习大纲
JAVA基础:
JVM内存结构:堆,栈,方法区等,GC (分代回收 ,cms),类加载与反射(双亲委托) 参考:http://www.cnblogs.com/zwt1990/p/8343341.html
JMM内存模型:并发线程通信,指令重排序和内存屏障
集合框架:list,map,set等源码
多线程与并发包:线程的状态,(countDownLatch等) 参考:http://www.cnblogs.com/zwt1990/p/8352844.html
设计模式:单例(双重锁volatile),工厂,代理(jdk动态代理),观察者模式(生产消费),桥接模式,适配器模式
数据库:mysql引擎,索引,事务,锁
spring:ioc和aop基本原理(动态代理),事务,缓存,bean的生命周期 参考:http://www.cnblogs.com/zwt1990/p/7096492.html
分布式
dubbo:序列化与反序列化(hession),通信协议(netty),注册中心(zookeeper),软负载均衡(随机,轮询)
zookeeper:选举算法和广播一致性,分布式锁 参考:http://www.cnblogs.com/zwt1990/p/8379291.html
elasticsearch:基本原理,倒排序 ;参考:http://www.cnblogs.com/zwt1990/p/7737747.html
kafak:topic,partition,segement等原理特性 参考:http://www.cnblogs.com/zwt1990/p/8442745.html
redis:nosql属性,锁,集群(哨兵模式),消息队列
其他:
数据结构,算法,网络等
先整理一部分,等复习过程中发现有遗留的再补上