Code Monkey home page Code Monkey logo

java-virtual-machine's Introduction

Java-Virtual-Machine

Java虚拟机资源汇总

最后更新时间

2019-04-23

注意

  1. 资料的排列的顺序不分先后。
  2. 资料的所有权归原作者所有,这里是汇总。
  3. 知识水平的限制,导致资料的介绍或者范围有一定的局限性,欢迎指出。

8. JVM 3000问

1. 为何从Java8开始,Permanent区域被取消变成了Metaspace区域

该文介绍了HotSpotVM的Permanent(永久代)变化为Metaspace(元数据)的原因和影响,文章是日文的,近期可能会翻译成中文

2. 先有Class还是先有Object

源自知乎的一个问题,对于Java来说,所有类的父类都是Object类,但是Object类本身又属于类类型,即Class类型,那么问题就来了。

3. JVM简史

源自周老师的文章,讲述了JVM虚拟机的发展史,以及各种各样的Java虚拟机

4. lambda表达式的实现原理

作者:让猪再飞会

虽然Java12都出来了,但是对于lambda表达式的实现原理以及用法你或许还是一知半解,可以阅读以下这篇文章,会有收获。

5. Invokedynamic Java的秘密武器

来自infoq的翻译文章,主要是讲述了InvokeDynamic指令所起到的作用。

9. Java 虚拟机规范

虚拟机规范,对Java虚拟机的抽象实现作了一定的规定和描述,但并没有规定具体的实现方式,虚拟机的厂商只要遵守了规范的规定,实现方式是可以自由选择的。 规范可以作为工具类书籍随时查看,虽然现在Java已经更新到12了,但是其实虚拟机的规范变化不是很大。读者们仍然可以参照周先生翻译的Java SE 8 或者 Java SE 7 规范。

Java 虚拟机规范英文版

资料类型:HTML,PDF

版本:Second Edition~ Java SE 11 Edition

Java 虚拟机规范中文版

资料类型:书籍,PDF

作者:周志明 等

  • 《Java虚拟机规范(Java SE 7版)》
  • 《Java虚拟机规范(Java SE 8版)》

10. 文章系列

10.1 手写JVM系列

作者:zachaxy

该系列从解析class文件开始,一步一步教读者如何去手动实现一个简单的玩具。文章思路清醒,排版优美。相关源代码可以参考原作者的github。

10.2 Java虚拟机原理图解

作者:亦山

作者通过大量的图例向读者们解释了虚拟机的部分原理,十分易懂。

10.3 Java虚拟机

作者:五月的仓颉

10.4 RednaxelaFX的博客

作者:RednaxelaFX

R大曾经在Oracle虚拟机组工作过,对虚拟机的理解无论是理论还是代码十分厉害,他个人的博客下有许多文章,读者可根据需要自由选择,不过貌似已经不更新了。

10.5 你假笨的博客

作者:你假笨

10.6 JVM实用参数系列

原作者:Sven Ruppert

译者:并发编程网

11 编程练习

11.1 使用Go语言编写的虚拟机

作者:zxh0

语言:go

jvm.go的编写者是《自己动手写Java虚拟机》的作者,参照书籍应该能方便读者理解。

11.2 使用C++编写的虚拟机

作者:Cthulhu

语言:C++

11.3 使用Java编写的虚拟机

11.3.1 使用Java编写的虚拟机

作者:kevinlynx

语言:Java

该项目由相关配套的文章,一起食用效果更好

11.3.2 使用Java编写的虚拟机

作者:caoym

语言:Java

该项目也有相关配套的文章,实现了一个刚好能够运行HelloWorld的简单虚拟机

11.3.3 使用Java编写的虚拟机

作者:zachaxy

语言:Java

12 书籍

12.1 深入理解Java虚拟机

国内目前来说最好的JVM相关书籍,周先生的水平毋庸置疑。在此书发行之前,国内好像没有一本完整介绍JVM的书籍。另外,目前市面上也有几本与JVM相关的书籍,评价多半是不好的,有的是抄袭,有的是内容比较浅,有的是作者本身就没有搞清楚就大写特写,另外有的全篇充斥大段代码,充占篇幅。

作者:周志明

  • 《深入理解Java虚拟机:JVM高级特性与最佳实践》

12.2 垃圾回收的算法与实现

介绍了垃圾回收的算法,该书分为两个部分,算法篇和实现篇。算法篇描述时使用伪代码来描述,脱离了具体的语言,实现篇需要有一定的C/C++的基础 才能较好地理解,另外本书的翻译稍显生硬,如果有能力建议读者直接阅读日文原版为好。

作者:中村成洋

  • 《垃圾回收的算法与实现》

12.3 自己动手写Java虚拟机

作者从0开始一步一步教读者写一个较为完整的虚拟机,虽然说该虚拟机是使用go语言编写的,但是如果读者使用过其他编程语言,也应该没有问题。

作者:张秀宏

  • 《自己动手写Java虚拟机》

13 最后

如果有好的文章,书籍,欢迎提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-virtual-machine's People

Contributors

smallclover avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.