加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

Java内存模子和JVM内存打点

发布时间:2020-12-28 18:54:11 所属栏目:运营 来源:网络整理
导读:p align="center"span style="font-size: 18pt;" Java内存模子 和 JVM内存打点 p align="center" ? p align="justify"一、 Java内存模子: p align="justify"1、 主内存和事变内存(等于当地内存): p class="p"span style="font-family: 微软雅黑;" Java内

<p class="p">? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


<p class="p">3.堆 Heap:


<p class="p"><span style="font-family: 微软雅黑;">  堆是JVM所打点的内存中国最大的一块,是被全部Java线程锁共享的,不是线程安详的,在JVM启动时建设。堆是存储Java工具的处所,这一点Java假造机类型中描写是:全部的工具实例以及数组都要在堆上分派。Java堆是GC打点的首要地区,从内存接纳的角度来看,因为此刻GC根基都回收分代网络算法,以是Java堆还可以细分为:新生代和晚年月;新生代再过细一点有Eden空间、From Survivor空间、To Survivor空间等。


<p class="p">4.要领区Method Area:


<p class="p"><span style="font-family: 微软雅黑;">  要领区存放了要加载的类的信息(名称、修饰符等)、类中的静态常量、类中界说为final范例的常量、类中的Field信息、类中的要领信息,当在措施中通过Class工具的getName.isInterface等要领来获守信息时,这些数据都来历于要领区。要领区是被Java线程锁共享的,不像Java堆中其他部门一样会频仍被GC接纳,它存储的信息相比拟力不变,在必然前提下会被GC,当要领区要行使的内存高出其应承的巨细时,会抛出OutOfMemory的错误信息。要领区也是堆中的一部门,就是我们凡是所说的Java堆中的永世区 Permanet Generation,巨细可以通过参数来配置,可以通过-XX:PermSize指定初始值,-XX:MaxPermSize指定最大值。


<p class="p">5.常量池Constant Pool:


<p class="p"><span style="font-family: 微软雅黑;">  常量池自己是要领区中的一个数据布局。常量池中存储了如字符串、final变量值、类名和要领名常量。常量池在编译时代就被确定,并生涯在已编译的.class文件中。一样平常分为两类:字面量和应用量。字面量就是字符串、final变量等。类名和要领名属于引用量。引用量最常见的是在挪用要领的时辰,按照要领名找到要领的引用,并以此定为到函数体举办函数代码的执行。引用量包括:类和接口的权限命名、字段的名称和描写符,要领的名称和描写符。


<p class="p">6.当处所法栈Native Method Stack:


<p class="p"><span style="font-family: 微软雅黑;">  当处所法栈和Java栈所施展的浸染很是相似,区别不外是Java栈为JVM执行Java要领处事,而当处所法栈为JVM执行Native要领处事。当处所法栈也会抛出StackOverflowError和OutOfMemoryError非常。


<p class="p">?

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读