深入拆解 Java 虚拟机-郑雨迪-极客时间-返现24元

极客时间专栏 2019-03-25 15:12:10 阅读(15826) 评论(0)

极客时间出品的《深入拆解 Java 虚拟机》由郑雨迪所作,郑雨迪是Oracal高级研究员,计算机博士,由雨迪手把手带你Java虚拟机JVM入门。

深入拆解 Java 虚拟机

 

订阅价格:

单独订阅价: ¥99,2人拼团价:¥79

已有26041 人已学习 · 已完结,本课程为图文+音频课程。可在极客时间APP/小程序/网站上永久观看。

《深入拆解 Java 虚拟机》价格

用我的邀请购买,返现24元。购买的朋友请加我微信号 dismissmewp ,备注:返现。

深入拆解 Java 虚拟机栏目介绍

作为开发工程师,你也许会在日常编程中被Java的启动性能和内存耗费所震惊,继而对Java语言产生怀疑;或许在使用虚拟机遇见内存溢出等一系列异常时头疼万分,困扰于为什么会出现各种问题。

和语言朝夕相处的开发者们,提及代码的详细运行过程也难免会一时语塞。这都是由于Java虚拟机封装得太好,让使用者几乎感觉不到它的存在。虽然这种“一次编写,到处运行”优势颇多,但是却也让我们忽略了学习Java虚拟机的必要。

熟知Java虚拟机的工作原理可以大幅提升日常编程的效率,对寻常Bug的修复更是轻而易举。同时,这也是Java技术的重要组成成分之一,是实现技术进阶必不可缺的知识。

本专栏通过揭秘Java 虚拟机的工作原理,详细阐述Java程序是如何被执行并且被优化的。介绍的内容并不限于某一个版本,从8到11都会涉及。通过学习此专栏,你将了解如何编写高效的代码,如何对Bug达到最优处理,以及如何针对自己的应用调整虚拟机的运行参数。

栏目作者简介

郑雨迪,Oracle Labs高级研究员,GraalVM编译器组核心开发者之一。研究方向包括动态编译及程序分析。在加入Oracle Labs前,郑雨迪于瑞士卢加诺大学攻读并获得计算机博士学位。

《深入拆解 Java 虚拟机》作者郑雨迪

郑雨迪在Java虚拟机性能优化方向有多年研究经验,在攻读博士学位期间,郑雨迪致力于Java字节码注入、Java虚拟机监控工具方面的研究,并提出过一套针对动态编译的解决方案。这些研究工作已发表在程序语言方向的顶级会议上,得到了不少学术界及工业界同行的认可。郑雨迪在Oracle Labs主要负责研究如何通过程序分析,以及动态编译让程序语言跑得更快。工作同样是分析性能瓶颈寻找优化空间。

专栏模块

本专栏共36期,分为四大模块。

模块一 Java虚拟机基本原理

剖析Java虚拟机的运行机制,逐次介绍Java虚拟机的设计决策以及工程实现。

模块二 高效编译

在本模块中,作者将带你探索Java编译器,以及内嵌于Java虚拟机中的即时编译器,帮助你更好地理解Java语言特性,继而写出简洁高效的代码。

模块三 代码优化

在实践过程中我们经常会遇到形形色色的性能问题,解决方法不外乎加机器加内存。本模块将介绍上述方法失效后的Plan B,即如何利用工具定位并解决代码中的潜在问题,以及在已有工具不适用的情况下,如何打造专属轮子。此外,本模块还将介绍对JVM内存管理失去信心的开发者所选取的解决方案,以备不时之需。

模块四 虚拟机黑科技

当一门程序语言成熟稳定后,技术大神们便热衷于用这种语言开发实现编译器或虚拟机。在Java 10中,Graal已作为试验性即时编译器一同发布。本模块将详细科普GraalVM的各个组成部分,其中包括编译器Graal,语言实现框架Truffle,以及支持Ahead-of-Time(AOT)编译的SubstrateVM。

深入拆解JAVA虚拟机专栏详细目录

1)开篇词•为什么我们要学习Java虛拟机

2)Java的基本类型

3)JVM是如何加载Java类的?

4)JVM是如何执行方法调用的?(上)

5)JVM是如何执行方法调用的?(下)

6)JVM是如何处理异常的?

7)JVM是如何实现反射的?

8)Java 8的Lambda表达式是怎么运行的?

9)JVM构造对象的步骤都有哪些?

10)什么是垃圾收集?

11)JVM是如何实现同步的?

12)Java内存模型是什么?

13)JVM的安全点是什么?

14)javac是如何编译Java源代码的?

15)如何使用注解解释器?

16)如何触发即时编译?

17)即时编译器与常规的静态编译器有哪些不同?

18)即时编译器有哪些优化?

19)在什么情况下重复读写操作会被优化?

20)在什么情况下循环代码会被优化?

21)在什么情况下对象分配会被优化?

22)在什么情况下方法调用会被内联?

23)什么是intrinsics ?为什么它们非常高效?

24)如何写出适用向量化计算的代码?

25)如何理解JVM内置的编译或GC日志?

26)如何利用JFR和JMC监控Java程序?

27)如何利用MAT分析Java程序的堆使用状况?

28)如何利用JMH评估代码性能?

29)如何在Java代码中与C++代码父互?

30)如何利用JVMTI监听JVM事件?

31)如何利用字节码注入为已有代码加料?

32)如何利用Unsafe AP丨绕开JVM的控制?

33)Graal:用 Java 编译 Java

34)Truffle:用Java编译其他语言

35)SubstrateVM:用Java编译虚拟机

36)Metropolis: Java-on-Java 的展望

适宜人群:希望了解底层Java虚拟机实现的开发者。有一定Java基础,希望达成技术进阶的Java工程师。希望在面试中对答如流的Java语言应聘者,以及希望考倒应聘者的面试官们。想要了解 Oracle GraalVM黑科技,或考虑借此技术转型的开发人员。

 

 

更多极客时间Java相关专栏:

Java核心面试技术36讲-杨晓峰

Java并发编程实战-王宝令

MySQL实战45讲-林晓斌

猿人学banner宣传图

我的公众号:猿人学 Python 上会分享更多心得体会,敬请关注。

***版权申明:若没有特殊说明,文章皆是猿人学 yuanrenxue.con 原创,没有猿人学授权,请勿以任何形式转载。***

说点什么吧...