第一章 分布式Java应用
1.1 基于消息方式实现系统间的通信
1.1.1 基于java自身技术实现消息方式的系统间通信
基于java自身包实现消息方式的系统间通信的方式有:
TCP/IP+BIO
TCP/IP+NIO
UDP/IP+BIO
UDP/IP+NIO
1.1.2 基于开源框架实现消息方式的系统间通信
apache的顶级项目Mina
Mina 基于Java NIO构建,同时支持TCP/IP和UDP/IP两种协议。
Mina对外屏蔽了Java NIO使用的复杂性,并在性能上做了不少优化。
1.2 基于远程调用方式实现系统间的通信
1.2.1 基于java自身技术实现远程调用方式的系统间通信
在java中实现远程调用方式的技术主要有RMI和WebService两种
1.2.2 基于开源框架实现远程调用方式的系统间通信
Spring RMI
CXF
第三章 深入理解JVM
3.1.1java源码编译机制
1.分析和输入到符号表(Parse and Enter)
2.注解处理(Annotation Processing)
3.语义分析和生成class文件(Analyse and Generate)
class 文件中并不仅仅存放了字节码,还存放了很多辅助JVM来执行class的附加信息,一个class文件包含以下信息:
结构信息
元数据
方法信息
3.1,2 类加载机制
JVM将类加载过程划分为三个步骤:装载、链接和初始化
1.装载(load)
装载过程负责找到二进制字节码并加载至JVM中。
2.链接(Link)
链接过程负责对二进制字节码的格式进行校验、初始化装载类中的静态变量及解析类中调用的接口、类。
3.初始化(Initialize)
初始化过程即执行类中的静态初始化代码、构造器代码及静态属性的初始化,在以下4种情况下初始化过程会被触发执行:
1)调用了new;
2)反射调用了类中的方法;
3)子类调用了初始化;
4)JVM启动过程中指定是初始化
3.1.3 类执行机制
1.字节码解释执行
1)指令解释执行
2)栈顶缓存
3)部分栈帧共享
2.编译执行
在编译上Sun JDK提供了两种模式:
client compiler( -client ) 和 server compiler ( -server )