深入拆解Java虚拟机
Oracle 高级研究员手把手带你入门JVM
郑雨迪 · 深入拆解Java虚拟机
如果你想进阶Java,那么JVM是必然要学的,跟着Oracle内部的人学虚拟机,是我想到最高效的路径。这个专栏涵盖了学好JVM必然要掌握的所有知识点,已有2万5千人加入了学习了,还在等什么?
你将获得
- Java工程师进阶加薪必修课;
- 4大模块全方位拆解JVM;
- 帮助你编写高效Java代码;
- 揭秘Oracle最新Java黑科技。
讲师介绍
郑雨迪,Oracle Labs高级研究员,GraalVM编译器组核心开发者之一。研究方向包括动态编译及程序分析。在加入Oracle Labs前,郑雨迪于瑞士卢加诺大学攻读并获得计算机博士学位。
郑雨迪在Java虚拟机性能优化方向有多年研究经验,在攻读博士学位期间,郑雨迪致力于Java字节码注入、Java虚拟机监控工具方面的研究,并提出过一套针对动态编译的解决方案。这些研究工作已发表在程序语言方向的顶级会议上,得到了不少学术界及工业界同行的认可。郑雨迪在Oracle Labs主要负责研究如何通过程序分析,以及动态编译让程序语言跑得更快。工作同样是分析性能瓶颈寻找优化空间。
课程介绍
作为开发工程师,你也许会在日常编程中被Java的启动性能和内存耗费所震惊,继而对Java语言产生怀疑;或许在使用虚拟机遇见内存溢出等一系列异常时头疼万分,困扰于为什么会出现各种问题。
和语言朝夕相处的开发者们,提及代码的详细运行过程也难免会一时语塞。这都是由于Java虚拟机封装得太好,让使用者几乎感觉不到它的存在。虽然这种“一次编写,到处运行”优势颇多,但是却也让我们忽略了学习Java虚拟机的必要。
熟知Java虚拟机的工作原理可以大幅提升日常编程的效率,对寻常Bug的修复更是轻而易举。同时,这也是Java技术的重要组成成分之一,是实现技术进阶必不可缺的知识。
本专栏通过揭秘Java 虚拟机的工作原理,详细阐述Java程序是如何被执行并且被优化的。介绍的内容并不限于某一个版本,从8到11都会涉及。通过学习此专栏,你将了解如何编写高效的代码,如何对Bug达到最优处理,以及如何针对自己的应用调整虚拟机的运行参数。
本专栏共36期,分为四大模块。
模块一 Java虚拟机基本原理
剖析Java虚拟机的运行机制,逐次介绍Java虚拟机的设计决策以及工程实现。
模块二 高效编译
在本模块中,作者将带你探索Java编译器,以及内嵌于Java虚拟机中的即时编译器,帮助你更好地理解Java语言特性,继而写出简洁高效的代码。
模块三 代码优化
在实践过程中我们经常会遇到形形色色的性能问题,解决方法不外乎加机器加内存。本模块将介绍上述方法失效后的Plan B,即如何利用工具定位并解决代码中的潜在问题,以及在已有工具不适用的情况下,如何打造专属轮子。此外,本模块还将介绍对JVM内存管理失去信心的开发者所选取的解决方案,以备不时之需。
模块四 虚拟机黑科技
当一门程序语言成熟稳定后,技术大神们便热衷于用这种语言开发实现编译器或虚拟机。在Java 10中,Graal已作为试验性即时编译器一同发布。本模块将详细科普GraalVM的各个组成部分,其中包括编译器Graal,语言实现框架Truffle,以及支持Ahead-of-Time(AOT)编译的SubstrateVM。
课程目录
适合人群
- 希望了解底层Java虚拟机实现的开发者。
- 有一定Java基础,希望达成技术进阶的Java工程师。
- 希望在面试中对答如流的Java语言应聘者,以及希望考倒应聘者的面试官们。
- 想要了解 Oracle GraalVM黑科技,或考虑借此技术转型的开发人员。