《深入理解Java虚拟机》总结整理

关于《深入理解Java虚拟机》这本书就不多说废话了,我觉得只要是搞Java的程序员都应该有这本书,因为这本书确实是很有用,对于理解Java虚拟机的底层运行机制非常有帮助,只有这样才算是真正进入了Java世界。下面列下各个章节内容:

  • 第一章:走近Java
    介绍了Java和虚拟机的发展史,展望Java技术的未来
  • 第二章:Java内存区域与内存溢出异常
    重点介绍了运行时数据区域:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区、运行时常量池、直接内存。
  • 第三章:垃圾收集器与内存分配策略
    如何判定一个对象可以回收?可达性分析算法。垃圾收集算法有哪几种?标记清除算法、复制算法、标记整理算法、分代收集算法。垃圾收集器有哪几种?一般是按照分代收集算法来分,因为新生代和老年代使用不同的收集算法,例如:Serial收集器和Serial Old收集器。
  • 第四章:虚拟机性能监控与故障处理工具
    分别介绍了JDK的命令行工具和JDK的可视化工具来监控虚拟机性能。
  • 第五章:调优案例分析与实战
    列举了一些虚拟机性能方面的案例,然后查找原因,分析原因,解决问题。最后进行了实战:通过调整一些系统参数,进行eclipse运行速度调优。
  • 第六章:类文件结构
    这一章讲诉了虚拟机的无关性,不管是平台还是语言。重点介绍了Class类文件的结构和字节码指令简介。
  • 第七章:虚拟机类加载机制
    重点讲述类加载的过程:加载、验证、准备、解析、初始化。加载就是将类文件加载到内存里,验证就是对类文件进行内容验证、准备就是分配内存赋初始值,解析就是将符号引用转化为直接引用,初始化就是根据类的定义进行初始化。
  • 第八章:虚拟机字节码执行引擎
    这里主要讲的是Java虚拟机栈在方法的运行过程中所作的全部事情,包括运行时栈帧结构。
  • 第九章:类加载及执行子系统的案例与实战
    作者准备了四个案例进行分析讲解,分别对应类加载器和字节码。例如:Tomcat和OSGi的类加载器架构,字节码生成技术与动态代理的实现。
  • 第十章:早期(编译器)优化
    以Javac为例,介绍了.java文件到.class文件的过程中,Java编译器都干了什么事。
  • 第十一章:晚期(运行期)优化
    解释执行器和编译执行器,查看java版本显示的那个mixed mode,说的就是解释执行和编译执行混合,介绍了几种编译优化技术:公共子表达式消除、数组边界检查消除、方法内联、逃逸分析。
  • 第十二章:Java内存模型与线程
    这里主要讲的都是跟多线程相关的内存模型以及线程的实现、线程调度、状态转换。
    值得注意的是,对于线程来说,32位的数值读写都是原子操作,double和long这种64位的数值读写不是原子操作,都分为两步执行。原子操作的意思就是操作指令可以被打断,但是操作的内容对于其他线程是不可变的。
  • 第十三章:线程安全与锁优化
    我发现但凡是讲述Java技术的书籍,多多少少都会留一点地方讲述Java的线程安全和锁机制,可见多线程知识是Java程序员一个必须要掌握的技术。

这本书还是差不多一年前读完的,虚拟机的整体也算有了一个大概的了解,最近打算把这本书再读一遍,加深一下各个方面的印象,看看通过这段时间的学习,对这本书有没有一个新的认识,好书都是值得慢慢品味的。

参考文献:《深入理解Java虚拟机-JVM高级特性与最佳实践》作者,周志明

菜鸟手书,欢迎指正!

你可能感兴趣的:(书籍整理)