Java是目前用户最多、使用范围最广的软件开发技术,Java 的技术体系主要由支撑Java程序运行的虚拟机、为各开发领域提供接口支持的Java API. Java编程语言及许许多多的第三方Java框架(如Spring和Struts等)构成。
本文档读者对象
(1)使用Java技术体系的中、高级开发人员
Java虚拟机作为中、高级开发人员必须修炼的知识,有着较高的学习门槛,本书可作为学习虛拟机的优秀教材。
(2)系统调优师
系统调优师是近几年才兴起的职业,本书中的大量案例、代码和调优实战将会对系统调优师的日常工作有直接的帮助。
(3)系统架构师
保障系统高效、稳定和可伸缩是系统架构师的主要职责之-,而这与虛拟机的运作密不可分,本书可以作为他们设计应用系统底层框架的参考资料。
本篇一共分为五个部分(13个章节):走近Java、自动内存管理机制、虚拟机执行子系统、程字编译与代码优化、高效并发。
分部分介绍
第一部分走近Java
本书的第--部分为后文的讲解建立了良好的基础。尽管了解Java技术的来龙去脉,以及编译自己的OpenJDK对于读者理解Java虛拟机并不是必需的,但是这些准备过程可以为走近Java技术和Java虚拟机提供很好的引导。第一部分只有第1章:
第1章介绍了Java技术体系的过去、现在和未来的发展趋势,并介绍了如何独立编译一个OpenJDK7
第二部分自动内存管理机制
因为程序员把内存控制的权力交给了Java虚拟机,所以可以在编码的时候享受自动内存管理的诸多优势,不过也正因为这个原因,-且出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会成为一-项异常艰难的工作。第二部分包括第2~5章:
第2章讲解了 虚拟机中的内存是如何划分的,哪部分区域、什么样的代码和操作可能导致内存溢出异常,并讲解了各个区域出现内存溢出异常的常见原因。
第3章分析了垃圾收集的算法和JDK1.6中提供的几款垃圾收集器的特点及运作原理,通过代码实例验证了Java虚拟机中的自动内存分配及回收的主要规则。
第4章介绍了随JDK发布的6个命令行工具与2个可视化的故障处理工具的使用方法。
第5章与读者分享了 几个比较有代表性的实际案例,还准备了一个所有开发人员都能“亲身实战”的练习,读者可通过实践来获得故障处理和调优的经验。
第三部分虚拟机执行子 系统
执行子系统是虛拟机中必不可少的组成部分,了解了虛拟机如何执行程序,才能写出更优秀的代码。第三部分包括第6~ 9章:
第6章讲解了 Class 文件结构中的各个组成部分,以及每个部分的定义、数据结构和使用方法,以实战的方式演示了Class的數据是如何存储和访问的。
第7章介绍了在类加载过程的“加载”、“验证”、“准备”、“解析”和“初始化”这五个阶段中虚拟机分别执行了哪些动作,还介绍了类加载器的工作原理及其对虚拟机的意义。
第8章分析了虚拟机在执行代码时如何找到正确的方法,如何执行方法内的字节码,以及执行代码时涉及的内存结构。
第9章通过四个类加载及执行子系统的案例,分享了使用类加载器和处理字节码的一些值得欣赏和借鉴的思路,并通过一个实战练习来加深对前面理论知识的理解。
第四部分程序编译 与代码优化
Java程序从源码编译成字节码和从字节码编译成本地机器码的这两个过程,合并起来其实就等同于一个传统编译器所执行的编译过程。第四部分包括第10和11章:
第10章分析了Java语言中的泛型、自动装箱拆箱、条件编译等多种语法糖的前因后果,并通过实战案例演示了如何使用插入式注解处理器来实现一个检查程序命名规范的编译器插件。
第11章讲解了虚拟机的热点探测方法、HotSpot 的即时编译器、编译触发条件,以及如何从虚拟机外部观察和分析JIT编译的数据和结果。此外,还讲解了几种常见的编译期优化技术。
第五部分高效并发
Java语言和虚拟机提供了原生的、完善的多线程支持,使得它天生就适合开发多线程并发的应用程序。不过我们不能期望系统来完成所有与并发相关的处理,了解并发的内幕也是一-个高级程序员不可缺少的课程。第五部分包括第12和13章:
第12章讲解了 虚拟机的Java内存模型的结构和操作,以及原子性、可见性和有序性在Java内存模型中的体现,介绍了先行发生原则及使用,还讲解了线程在Java语言中是如何实现的。
第13章介绍了线程安全所涉及的概念和分类、同步实现的方式以及虚拟机的底层运作原理,并且还介绍了虛拟机实现高效并发所采取的-系列锁优化措施。
这份文档的资料太多啦,为了避免大家浪费过多的时间,小编已经为大家整理好了这份文档,只需要私信小编【学习】即可学习。
整理不易,如果大家喜欢小编的文章还请多多转发和关注,万分感谢!
本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.sosokankan.com/article/2041986.html