1、JVM的结构和工作原理
1)JVM监控及调优。作为一个开发人员并不一定需要非常熟悉JVM调优的方法,但如果具备JVM监控及调优的能力,将让你对程序运行状况了如指掌,对于问题定位也会敏感得多。
2)Java多线程。对于线程安全的理解,以及如何在自己的程序中避免多线程造成的不一致问题等。
3)I/O。Java中常常提到的是BIO/NIO,即阻塞型I/O与非阻塞型I/O,其实并不难理解,结合Linux中的同步I/O和异步I/O的实现原理,基本都是相通的,每种I/O方式解决的问题,又存在什么问题,为什么使用epoll。
2、框架
1)Spring。Spring是一个强大而又“轻量级”的Java开发框架,之所以打引号是因为感觉并不是那么轻量。Spring的主要目的在于简化Java应用开发,以配置方式代替硬编码方式的编程,模块解耦,其架构如下图所示。包括了数据访问、远程通信、AOP、核心容器等部分。
2)Hibernate。Hibernate是一个全自动的持久化框架,并不是那么方便,所以很多开发者倾向于使用MyBatis,淘宝就是这样。
3、Servlet
Servlet是运行于服务端的java程序,一般实现自己的Java服务端应用都从HttpServlet类继承,然后实现自己的init | doGet | doPost | service方法。Servlet的生命周期从其加载开始,首先执行一次初始化,调用init方法,之后便可运行自身的服务,当生命周期结束时,调用destroy方法回收资源,结束服务。
4、HTTP
需要理解的知识是:Http的报头格式、Http协议的各种返回码是什么意思、https如何实现、B/S架构的工作原理、Cookie和Session的原理、restful API。