基于产品开发项目,更多的时间是实现客户的业务需求,更多时候是Ctrl+C, Ctrl+V再改改就完成一个功能,导致很久没认真学习技术了,记下一些点,好好安排时间学习、摸透。暂时记起以下几点,想到别的再补充。结果或相关参考会再做编辑或在回复中补充。
1、Servlet 非线性安全,对每个请求会生成一个实例。弄清楚servlet的启动过程、如何工作、生命周期?容器是如何调用servlet的?容器如何知道调用的是那个servlet? 再抽时间看看servlet spec,都忘光光了。
2、JVM工作流程、工作原理、结构,比如,一个java文件,经过怎样的处理,才能被执行?
3、Spring能用来做什么?某一块功能,Spring源码是如何实现的,比如:IOC功能,Spring是怎样实现的.
4、annotation的使用场合,什么时候会使用,会带来那些优点、不足之处,改进方法?什么情况下会自定义annotation?
5、泛型的原理、作用,使用泛型的注意事项,能带来那些好处,泛型继承的处理。
6、JSON使用会带来的问题
7、Executor、ThreadFactory两者关系
8、某一项目的介绍,从技术角度介绍架构
9、单例模式写法,延迟加载,可能会带来的多线程问题
10、使用多线程的场合,可能带来的好处、会带来的问题等,出现问题怎样处理
11、多线程集合类,为什么需要?为什么使用起来会方便
12、synchronzied与Lock的差异,什么时候使用lock而不使用synchronzied
13、webservice传输大量数据时,如何处理,如何保证效率?
14、加强英文学习,学会用英文表达技术方面的一些观点,如用英文描述死锁、如何避免死锁、线程与进程的差别等