在上一篇Blog中我们正式将class文件加载到了虚拟机中,上文中我们仅仅提到了方法区,其实不光方法区,其它的运行时数据区我们也需要详细介绍下,在了解了运行时数据区域后,才能明白执行引擎如何作用,垃圾回收系统如何工作。以下是运行时数据区域在JVM中的展现:
一个段Java代码的生命周期都会少不了上图这几个步骤,也就是Java代码首先会被编译成字节码文件,之后被类加载器加载到运行时数据区域,接着被执行引擎运行,最后垃圾收集器回收对象。
运行时数据区域
从上图中我们可以看到运行时数据区由5部分内容组成,这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。还有就是会抛出不同的异常,接下来会分区域详细讨论。
程序计数器
程序计数器(Program Counter Register)是JVM中一块较小的内存区域,保存着当前线程执行