深入拆解 Java 虚拟机
Oracle 高级研究员手把手带你入门 JVM
郑雨迪  Oracle 高级研究员,计算机博士
飙升榜 第4名
专栏
已完结·共 40 讲
|
8.7w 人已学
|
收藏
hiwon
你好,请问一下单例模式的double check变量一定要加volatile来确保指令重排问题?在类的创建到初始化是原子操作?
2021-01-17
向南
循序渐进,讲的非常好,值得反复看
2020-05-22
随心而至
感谢郑老师 1.实践性强 这是我目前订阅的专栏里面写留言最多的,以前大学时看周志明的书,总觉得很难动手验证,或许是自己经验能力都还不够。现在订阅这个专栏,每次都能跟着老师的实战实际的动手,实际地体会每个知识点。这样的学习也是我最喜欢的方式,每次都能边看边思考边动手验证,一些思想概念等看不着莫不见的东西通过代码,通过工具,就可以显现在自己眼前,这样理解之后的在记忆,更加持久深入。即便忘记了,也可以很快捡起来。 2.有体系,有脉络 老师先讲JVM的基本原理,再讲高效编译,代码优化,以及畅想未来的GraalVM。 让我对JVM的了解深入了很多。 3.有启发,开拓视野 原来我不知道如何去验证voaltile, synchronzied的实现方式,try-catch-finally的实现方式(还有很多),其实都是可以通过字节码,机器码,JVM源码来验证的。另外JNI, Java Agent也都开拓了我的眼界,明白native的前世今生,明白了AOP的实现方式, 4.学习需要有体系 计算机组成原理,操作系统,编译原理,计网,数据结构与算法都是一些通用的计算机科学知识。聪明的计算机科学家会借鉴已有的最有效的解决方案来解决自己遇到的问题,只有了解了这些最底层计算机科学知识,自己才可以走的更远。 道阻且长,继续加油。 再次感谢郑老师
作者回复:多谢支持!
2019-11-01
随心而至
赞,之前学习了深入理解计算机原理这门课,再联系这一节就知道intrinsic想做什么了。 JVM 自身不是跨平台的,Windows,Linux都有各自的安装包,也就是JVM帮我们做了不同操作系统及底层体系结构的兼容;但是针对每一个具体的CPU,其自身提供的指令,寄存器,以及SIMD等优化机制并没有得到利用,而intrinsic的产生正是为了利用这些。 个人理解,有不对之处,请老师和各位同学指出。
作者回复:对的,许多intrinsics 都会依赖特殊的CPU指令来优化执行效率的。 说个趣闻,Intel曾经向OpenJDK提交了一大堆浮点数算法作为java.lang.Math中部分方法的intrinsic,比如sin cos这些,除了他们没人看的懂。结果在某些情况下算出来的结果是错的。。后来他们又提交了一堆更正过的天书代码,希望是对的吧,哈哈
2019-10-25
Desire
感谢,老师这么长时间,讲学。让我对jvm有所了解。还需要对jvm深入开展。
作者回复:多谢支持!
2018-12-03
笨鸟
1.虚拟机必须知道(加载)有这个类,才能创建这个类的数组(容器),但是这个类并没有被使用到(没有达到初始化的条件),所以不会初始化。 2.新建数组的时候并不是要使用这个类(只是定义了放这个类的容器),所以不会被链接,调用getInstance(false)的时候约等于告诉虚拟机,我要使用这个类了,你把这个类造好(链接),然后把static修饰的字符赋予变量(初始化)。 老师看看理解对不对,指点一下。
作者回复:对的!
2018-10-18
陈浩
这是我读过最硬核的技术专栏,感谢
作者回复:多谢支持!
2018-10-18
bradsun
这个课程对学习JVM提供了很好的入口。十分感谢!
作者回复:多谢支持!
2018-10-15
阿武
感谢作者这么细心的专栏,虽然我因为技术资历较浅,还没研习虚拟机。但看了前几篇文章,感觉作者很用心,等算法和Java开发能力上升后,一定好好研习大大的文章。:-)
作者回复:多谢支持!
2018-10-15
Len
我们可不可以把 profile 和编译的机器码保存到磁盘,在代码和运行平台不变的情况下,下次启动(或部署多实例)的时候直接装载这部分数据?这算作是一种系统预热的可行性方案吗?
作者回复:赞想法!已经有这种做法,但同时需要承担profile不能反映当前执行状态的风险。可以了解一下Alibaba的JWarmup。
2018-10-12
讲师

郑雨迪

Oracle 高级研究员,计算机博士

郑雨迪,Oracle Labs 高级研究员,GraalVM 编译器组核心开发者之一。研究方向包括动态编译及程序分析。在加入 Oracle Labs 前,郑雨迪于瑞士卢加诺大学攻读并获得计算机博士学位。 郑雨迪在 Java 虚拟机性能优化方向有多年研究经验,在攻读博士学位期间,郑雨迪致...查看更多
编辑推荐
包含这门课的学习路径

Java工程师

29门课程 153.4w人学习
看过的人还看了
Java 核心技术面试精讲
杨晓峰
前 Oracle 首席工程师

44讲 | 125271 人已学习

¥59¥129
左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家

119讲 | 178353 人已学习

¥98¥399
Netty 源码剖析与实战
傅健
Netty 源码贡献者、Cisco 高级软件工程师

60讲 | 32755 人已学习

¥59¥129
深入拆解 Tomcat & Jetty
李号双
eBay 技术主管

45讲 | 38676 人已学习

¥68¥199
从 0 开始学架构
李运华
网名“华仔”,前阿里资深技术专家(P9)

66讲 | 150851 人已学习

¥68¥199
如何设计一个秒杀系统
许令波
前阿里巴巴高级技术专家

10讲 | 56045 人已学习

¥39