JVM 这块一直没有系统的学习,在极客时间上买了一个 "深刻拆解Java虚拟机" 专栏,专栏是看完了,可是感受跟看天书同样,基本都忘了。因此但愿借助看这本书入个门。程序员
整书 400 多页,包含了大量 JVM 配置参数与代码实例,我花了周末一天加三个晚上空余时间看完的,七八小时。读起来没那么累,但没去实践仍是比较容易忘记。算法
书提到了这些知识模块:并发
Java 与虚拟机的发展历史ide
如何编译 JDK工具
Java内存区域性能
内存溢出异常学习
垃圾收集器与内存分配策略优化
虚拟机性能监控与故障处理工具spa
调优案例分析与实战操作系统
类文件结构
虚拟机类加载机制
虚拟机字节码执行引擎
类加载及执行子系统的案例与实战
程序编译与代码优化
高效并发
熟练使用 Java 语言,开始探索 Java 虚拟机的运行机制。
看这本书,就像在听做者说关于 Java 如何运行与优化的故事同样,结构清晰、条理性很好,适合入门 JVM。
书中包含了大量的参数配置以及实验代码,JVM 的学习对动手能力要求更高。不去实践配置调整虚拟机的启动参数、不写实验代码,是无法感觉到 JVM 在底层究竟是如何运行的,它会产生哪些影响,在什么状况下会出问题。
了解了 JVM 的内存分布、各类内存溢出致使的缘由、垃圾收集算法与各类垃圾收集器的特色、虚拟机的性能监控与故障处理、class 文件结构、类编译加载执行以及各类优化,对咱们平时写出高质量的 Java 代码是颇有帮助的,尤为是遇到 "诡异" 的状况可以猜出个 123 来。
本地编译 JDK 是一件有挑战的事情,由于操做系统的环境问题、未公开代码的类库加载、使用了不一样的编译器等各类问题,哪怕是一个中文目录也可能让你崩溃。得空本身 high 一把,应该其乐无穷。
了解底层不容易,但应该是每一个 Java 程序员所向往的,正如做者说的,Java 与 C++ 之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。
JVM 中关于并发的部分,讲的不够详细、不够深刻。
我这是看的初版,后面准备看一下第二版,而后实践书里的参数以及实验代码,画个图分享出来。