当前位置:正文

每一个秩序被调用直至延迟已毕的流程中国

发布日期:2024-05-29 15:49    点击次数:187

[[320318]]

1关节计数器

一块较小的内存空间。 面前哨程所延迟的字节码的行号带领器。

2虚构机栈

描画的是Java秩序延迟的线程内存模子:每个秩序被延迟的时辰,Java虚构机王人会同步创建一个栈(StackFrame)用于存储局部变量表、操作数栈、 动态流畅、秩序出口等信息。每一个秩序被调用直至延迟已毕的流程,就对应着一个栈帧在虚构机栈中从入栈到出栈的流程。

局部变量表(存放)

基本数据类型 对象援用 returnAddress类型(指向了一条字节码提醒的地址)

绝顶

StackOverflowError:线程请求的栈深度大于虚构机所允许的深度

OutOfMemoryError:栈扩展时无法肯求到饱胀的内存

3土产货秩序栈

虚构机使用到的土产货(Native)秩序就业。

4Java堆回收内存的角度

更生代、老年代、耐久代、Eden空间、From Survivor空间、To Survivor空间。

分拨内存的角度

总共线程分享的Java堆中不错鉴识出多个线程特有的分拨缓冲区(Thread Local Allocation Buffer,TLAB)。

绝顶

OutOfMemoryError:莫得内存完成实例分拨, 况且堆也无法再扩展时

5秩序区

各个线程分享的内存区域 用于存储已被虚构机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等数据 JDK8将耐久代扬弃,相应的用元空间MetaSpace

绝顶

OutOfMemoryError:无法称心新的内存分拨需求时

6出手频频量池

秩序区的一部分 用于存放编译期生成的各式字面量与象征援用, 这部老实容将在类加载后存放到秩序区的出手频频量池中

绝顶

OutOfMemoryError:当常量池无法再肯求到内存

7成功内存

不是虚构机出手时数据区的一部分

本机成功内存的分拨不会受到Java堆大小的戒指 中国

 

回想:

 

JVM内存区域结构包含:关节计数器、虚构机栈、土产货秩序栈、Java堆、秩序区。不错简记为:一计两栈一堆一区,绵薄顾虑。

秩序区包含出手频频量池,还有成功内存(NIO更常见)。

需要了解到每个区域是主要作用是什么,这么才能愈加安定的掌捏。

 





Powered by 🏆华体汇·体育全站app官网入口(中国)官方网站IOS安卓/通用版/手机版APP下载 @2013-2022 RSS地图 HTML地图