JVM-堆

Posted 四猿外

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM-堆相关的知识,希望对你有一定的参考价值。

Java 中的堆是用来存储对象本身的以及数组(当然,数组引用是存放在Java 栈中的),堆是被所有线程共享的,在JVM 中只有一个堆。所有对象实例以及数组都要在堆上分配内存,单随着JIT 发展,栈上分配,标量替换优化技术,在堆上分配变得不那么到绝对,只能在server 模式下才能启用逃逸分析。

栈上分配:
一是逃逸分析:逃逸分析的目的是判断对象的作用域是否有可能逃逸出函数体。
二是标量替换:允许将对象打散分配在栈上,比如若一个对象拥有两个字段,会将这两个字段视作局部变量进行分配。

垃圾收集器管理的主要区域,很多时候被称作GC 堆。现在收集器基本采用分代收集算法:
新生代和老年代,再细致点Eden 空间,From Survivor 空间,ToSurvivor 空间等。

以上是关于JVM-堆的主要内容,如果未能解决你的问题,请参考以下文章

干货:JVM 堆内存和非堆内存

JDK8中JVM堆内存划分

JDK8中JVM堆内存划分

JVM堆详解

JVM 进程与 JVM 堆内存使用情况

JVM:堆概述