本文主要叙述JVM的内存结构。
JVM内存结构主要分为5部分,分别是:程序计数器、虚拟机栈、本地方法栈、堆、方法区。
在JDK1.7的时候,是有永久代的,但是到了JDK1.8,替代永久代的是元数据区,两者本质上一样,不过元空间是在本地内存中,而不在虚拟机中。
下面针对这五部分进行展开叙述。
一、程序计数器
1.定义
程序计数器又称PC寄存器,是一块较小的数据空间,如果执行的是java方法,它是当前线程正在执行的那条字节码指令的地址;如果执行的是Native方法,则定义为Undefined。文章来源:https://www.toymoban.com/news/detail-599396.html
2.作用
- 字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制。
- 在多线程情况下,程序计数器记录的是当前线程执行的位置,从而当线程切换回来时,就知道上次线程执行到哪了。
3.程序计数器的特点
- 是一块较小的内存空间。
- 线程私有,每条线程都有自己的程序计数器。
- 生命周期:随着线程的创建而创建,随着线程的结束而销毁。
- 是唯一一个不会出现
OutOfMemoryError
的内存区域
二、java虚拟机栈
1.定义
Java 虚拟机栈是描述 Java 方法运行过程的内存模型。它会为每一个将要运行的java方法创建一个“栈帧”的区域,用于存放该方法运行过程中的一些信息&文章来源地址https://www.toymoban.com/news/detail-599396.html
到了这里,关于JVM整理合集①的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!