Java虚拟机是所有Java开发者都必须要突破的一道坎,除非你愿意一直做CRUD。学习虚拟机有助于你深入理解Java的运行机制,编写高质量的代码,更能快速地排查生产问题,当然虚拟机也是面试中必不可少的一块内容。
本套课程按照事物发展的顺序讲起,要运行一个Java应用,首先要编写Java源码,然后将源码编译为字节码,再将字节码交给虚拟机来执行。我们讲解也是按照这个顺序,从Java源码编译为字节码开始讲起,首先讲述字节码的结构以及常见的字节码指令。然后把字节码交给虚拟机。虚拟机从类的加载讲起,到对象的实例化,再到对象的结构,对象的创建,对象的内存分配与访问策略以及对象的回收,最后讲方法的分派与执行。整个流程完毕之后,讲解Java常用工具的使用,相关面试题以及生产问题剖析。
学习本套课程,还可以学到很多开发上的黑科技,比如远程调试,直接断点跟踪服务器的请求。再比如远程监控等。
本套课程扩展内容比较多,如lambda表达式、方法引用、StreamAPI等语法特性。扩展Java高并发相关知识,比如在讲对象头的结构时,会讲解synchronized的实现原理,在讲字节码指令volatile时,会讲解volatile的内存语义以及使用场景,在讲栈的内存结构的时候,会讲线程模型。
本套课程讲解内容通俗易通,适合对Java语法非常熟悉希望进一步提升自己的学员。通过本套教程,你能够读懂字节码文件,能够清楚的认识到Java应用在虚拟机中到底是如何运行的,能够通过工具监控应用的运行情况,能够快速的定位类似于内存溢出等常见问题,能够给出合理的虚拟机参数配置,能够选择合适的垃圾收集器,能够应对面试中的大部分虚拟机问题。