%- 一个虚拟机对应一个进程:Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机的启动而创建,随着虚拟机的退出而销毁【进程生命周期=虚拟机生命周期】
- 另一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程的开始和结束而创建和销毁
- 每个JVM只有一个Runtime实例,即为运行时环境 = 运行时数据区
灰色的为单独线程私有的,红色的为多个线程共享的,即:
- 每个线程:
独立,包括程序计数器、栈、本地栈 - 线程间共享:堆、堆外内存(永久代或元空间、代码缓存)
- 95%的垃圾回收在堆区,5%的垃圾回收在方法区