本文将着重介绍JVM的内存结构,总结其特点。这也是作者学习过程中的总结归纳,如有错误欢迎指正。
我们先从下图了解JVM,即Java虚拟机。
JVM内存结构,也叫作运行时数据区,是我们最关心的区域。
Java是支持多线程的,且线程的执行是抢占式调度模型,即各个线程抢夺CPU时间片。为了满足线程切换后能恢复到正确的执行位置,每个线程就有了自己的程序计数器,以记录线程中下一条指令的执行地址。
特点归纳:
虚拟机栈是一个线程执行的区域,用来存储栈帧。下面先来了解几个概念:
虚拟机栈的执行过程:
特点归纳:
1.java虚拟机栈是线程私有的,随线程的创建而创建,有多少个线程,就会开辟多少个相互独立的虚拟机栈。
2.每调用一个方法,就会在虚拟机栈中压入一个栈帧,该方法内部再调用其他方法,则会压入新的栈帧,方法结束后将栈帧弹出栈。
JVM启动时就创建,是所以类实例和数组对象分配内存的区域,被所有线程共享。
特点归纳:
在Java虚拟机中,方法区是可以供各个线程共享的运行时内存区域。他存储了一个类的结构信息,如常量池、类的相关信息、类加载器。
方法区在JDK6或7中就是Perm Space【 永久代】
在JDK 8中就是Metaspace【 元空间】
特点归纳:
对于一个运行中的Java程序而言,它还可能会用到一些跟本地方法相关的数据区。当某个线程调用一个本地方法时, 这些方法就会在本地方法栈中执行。
本文发布于:2024-01-31 04:03:11,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170664499725290.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |