概念,发展史,大事件。。。
1 虚拟机并不神秘,在操作系统的角度看来,它只是一个普通进程。
2 这个叫做虚拟机的进程比较特殊,它能够加载我们编写的class文件。如果把JVM比作一个人,那么class文件就是我们吃的食物。
3 加载class文件的是一个叫做类加载器的子系统。就好比我们的嘴巴,把食物吃到肚子里。
4 虚拟机中的执行引擎用来执行class文件中的字节码指令。就好比我们的肠胃,对吃进去的食物进行消化。
5 虚拟机在执行过程中,要分配内存创建对象。当这些对象过时无用了,必须要自动清理这些无用的对象。清理对象回收内存的任务由垃圾收集器负责。就好比人吃进去的食物,在消化之后,必须把废物排出体外,腾出空间可以在下次饿的时候吃饭并消化食物。
JVM规范
- Class 文件类型
- 深入理解JavaClass文件格式-十连击
- 运行时数据
- 深入理解java运行时数据区域
- 帧栈
方法的调用链前后关系维护是用帧栈维护的。
每调用一次方法,栈帧入栈+1,方法返回栈帧出栈-1
递归出现StackOverFlow 异常就是这么产生的了。
- 虚拟机的启动
- 虚拟机的指令集
原文:https://blog.csdn.net/zhangjg_blog/article/details/20380971