今天天气明媚,~(≧▽≦)/~啦啦啦,所以要总结一下以后需要掌握的技能树
基础
- 集合类
- 并发包
- IO/NIO
- JVM
- 内存模型
- 泛型
- 异常
- 反射
对以上要有深入了解,最好是看过源码了解底层设计。比如面试官回文ConcurrentHashMap,copyOnWrite,线程池,CAS,AQS,虚拟机优化等知识点。如:在使用线程池的时候,因为使用了无界队列,在远程服务异常情况下导致内层飙升,怎么去解决?又如:对ThreadLocal理解出错,使用它做线程安全的控制,导致没能实现真的线程安全。又如:遇到内存泄漏怎么排查问题,怎么优化系统性能。
需要有全面的互联网技术相关知识
从底层说起,必须深入了解以下方面的知识
- mysql
- redis
- nginx
- tomcat
- rpc
- jms
了解的程度:
MySQL:
- 要知道常见的参数设置,存储引擎怎么去选择
- 还需要了解常见的搜索引擎,知道怎么去选择
- 知道怎么去设计表,怎么优化sql,怎么根据执行计划去调优。
- 高级点的:需要去做分库分表的设计和优化,一般互联网企业的数据库都是读写分离,还会垂直于水平拆分
rpc远程过程调用(国内dubbo,开元的spring cloud)
- 各种网络协议
- 序列化技术
- SOA等
jms
- 了解原理(印版情况下不是专门开发中间件系统和支撑系统的不需要了解太多细节)
从现在开始要看的书
要学的东西太多啦,今天得加鸡腿!!!