(原发于知乎, 定期同步至简书, 原文地址:知乎-JVM入门系列)
这是在知乎的第一篇文章,之前的文章很分散,早先在CSDN,后来又用了Github Pages,接着又在自建的WordPress上面写,至今几乎全部遗失了。大体是一个很惫懒的人,也不爱折腾。现在算是下定决心又开始写文章了,一是为了记录些知识,而也是想分享一下自己的新的体会。
至于JVM入门系列,大体是最粗浅的实现,本着熟悉jvm规范的目的,用java实现一个简单的jvm。好久不写了,可能有些混乱,希望见谅。
这个系列主要是想要完成两个目标:
1. 了解jvm的一些基础知识
2. 实现一个简单的bytecode interpreter
在系列文章中,主要讲述如下内容:
·1. classfile文件格式
2. 指令集
3. bytecode interpreter
而以下内容将不会在系列中出现:
GC
多线程
JIT
希望通过该系列能够让大家对虚拟机有着基本的了解,并且完成最基本的一个字节码解析器。
该系列将会按照如下顺序分成几篇文章来讲解:
1. jvm总览
2. classfile结构
3. 运行时数据区
4. 指令集和解释器
5. 类、方法的实现
6. 数组和字符串的实现
7. 本地方法和异常处理
事实上,这些文章也算是我整理自己的jvm入门分享slides
主要参考:
1. The Java® Virtual Machine Specification
2. 自己动手写Java虚拟机