Java虚拟机资源汇总
2019-10-24
- 资料的排列的顺序不分先后。
- 资料的所有权归原作者所有,这里是汇总。
- 知识水平的限制,导致资料的介绍或者范围有一定的局限性,欢迎指出。
该文介绍了HotSpotVM的Permanent(永久代)变化为Metaspace(元数据)的原因和影响,文章是日文的,近期可能会翻译成中文
源自知乎的一个问题,对于Java来说,所有类的父类都是Object类,但是Object类本身又属于类类型,即Class类型,那么问题就来了。
源自周老师的文章,讲述了JVM虚拟机的发展史,以及各种各样的Java虚拟机
作者:让猪再飞会
虽然Java12都出来了,但是对于lambda表达式的实现原理以及用法你或许还是一知半解,可以阅读以下这篇文章,会有收获。
来自infoq的翻译文章,主要是讲述了InvokeDynamic指令所起到的作用。
作者:假不理
作者从问题的源头出发详细的分析了Java为何是值传递这一问题。
虚拟机规范,对Java虚拟机的抽象实现作了一定的规定和描述,但并没有规定具体的实现方式,虚拟机的厂商只要遵守了规范的规定,实现方式是可以自由选择的。 规范可以作为工具类书籍随时查看,虽然现在Java已经更新到12了,但是其实虚拟机的规范变化不是很大。读者们仍然可以参照周先生翻译的Java SE 8 或者 Java SE 7 规范。
资料类型:HTML,PDF
版本:Second Edition~ Java SE 11 Edition
资料类型:书籍,PDF
作者:周志明 等
- 《Java虚拟机规范(Java SE 7版)》
- 《Java虚拟机规范(Java SE 8版)》
作者:zachaxy
该系列从解析class文件开始,一步一步教读者如何去手动实现一个简单的玩具。文章思路清醒,排版优美。相关源代码可以参考原作者的github。
- 手写JVM系列
- 手写JVM系列(1)-准备工作
- 手写JVM系列(2)-参数解析
- 手写JVM系列(3)-搜索class文件
- 手写JVM系列(4)-分析class文件
- 手写JVM系列(5)-分析class文件-常量池
- 手写JVM系列(6)-分析class文件-属性表
- 手写JVM系列(7)-读取class文件
- 手写JVM系列(8)-运行时数据
- 手写JVM系列(9)-指令集
- 手写JVM系列(10)-解释器
- 手写JVM系列(11)-线程共享的运行时数据
- 手写JVM系列(12)-类加载器的实现
- 手写JVM系列(13)-方法调用机制
- 手写JVM系列(14)-数组的实现
- 手写JVM系列(15)-字符串的实现
- 手写JVM系列(16)-反射机制简介
- 手写JVM系列(17)-本地方法的调用过程
- 手写JVM系列(18)-异常处理机制
作者:亦山
作者通过大量的图例向读者们解释了虚拟机的部分原理,十分易懂。
作者:五月的仓颉
- Java虚拟机1:什么是Java
- Java虚拟机2:Java内存区域及对象
- Java虚拟机3:常用JVM命令参数
- Java虚拟机4:内存溢出
- Java虚拟机5:Java垃圾回收(GC)机制详解
- Java虚拟机6:内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别
- Java虚拟机7:内存分配原则
- Java虚拟机8:虚拟机性能监控与故障处理工具
- Java虚拟机9:Java类加载机制
- Java虚拟机10:类加载器
- Java虚拟机11:运行期优化
- Java虚拟机12:Java内存模型
- Java虚拟机13:互斥同步、锁优化及synchronized和volatile
- Java虚拟机14:Java对象大小、对象内存布局及锁状态变化
- Java虚拟机15:再谈四种引用状态
- Java虚拟机16:Metaspace
作者:RednaxelaFX
R大曾经在Oracle虚拟机组工作过,对虚拟机的理解无论是理论还是代码十分厉害,他个人的博客下有许多文章,读者可根据需要自由选择,不过貌似已经不更新了。
作者:你假笨
原作者:Sven Ruppert
译者:并发编程网
作者:zxh0
语言:go
jvm.go的编写者是《自己动手写Java虚拟机》的作者,参照书籍应该能方便读者理解。
- github:jvm.go
作者:Cthulhu
语言:C++
作者:kevinlynx
语言:Java
该项目由相关配套的文章,一起食用效果更好
-
github:
-
文章:
作者:caoym
语言:Java
该项目也有相关配套的文章,实现了一个刚好能够运行HelloWorld的简单虚拟机
作者:zachaxy
语言:Java
- github:JVM
国内目前来说最好的JVM相关书籍,周先生的水平毋庸置疑。在此书发行之前,国内好像没有一本完整介绍JVM的书籍。另外,目前市面上也有几本与JVM相关的书籍,评价多半是不好的,有的是抄袭,有的是内容比较浅,有的是作者本身就没有搞清楚就大写特写,另外有的全篇充斥大段代码,充占篇幅。
作者:周志明
- 《深入理解Java虚拟机:JVM高级特性与最佳实践》
介绍了垃圾回收的算法,该书分为两个部分,算法篇和实现篇。算法篇描述时使用伪代码来描述,脱离了具体的语言,实现篇需要有一定的C/C++的基础 才能较好地理解,另外本书的翻译稍显生硬,如果有能力建议读者直接阅读日文原版为好。
作者:中村成洋
- 《垃圾回收的算法与实现》
作者从0开始一步一步教读者写一个较为完整的虚拟机,虽然说该虚拟机是使用go语言编写的,但是如果读者使用过其他编程语言,也应该没有问题。
作者:张秀宏
- 《自己动手写Java虚拟机》
如果有好的文章,书籍,欢迎提pull request。一起交流,一起进步。
- 重新整理格式(2019-01-22)
- 目录整理,内容小范围修改(2019-01-23)
- 添加[五月的仓颉]系列文章(2019-01-28)
- 添加新的内容,JVM有关的问题(2019-02-01)
- 添加[并发编程网]系列文章(2019-03-12)
- 添加[你假笨]文章(2019-04-05)
- 添加[先有蛋还是先有鸡]问题(2019-04-09)
- 添加[JVM简史]文章(2019-04-15)
- 添加[添加lambda表达式]相关文章(2019-04-23)
- 添加[InvokeDynamic]文章(2019-04-28)
- 添加[Java值传递]文章(2019-10-24)