Java内存模型

Posted 雪原那么远

tags:

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

所谓内存模型:

  是否知道java的内存画风

  是否知道调整内存的方法

  GC的解释操作

如果要说到内存,最直观的理解就是单例对象Runtime类。

Runtime run = Runtime.gerRuntime();

实际上,再java里面如果想进行内存的变更,就需要掌握一些内存的结构:

  1.伊甸园区:新生的对象都保存再此处,但是不代表新生的对象会一直存活

    。此处也属于内存空间,那么既然是内存空间一定会被沾满,如果占满了,那么就会执行GC处理

  2.旧生代区:如果某些对象发现期要一直使用,那么就进入到旧时代区,这属于二级回收保险

    。如果是先执行GC,那么先清理伊甸园区,随后如果发现空间不足,继续清理旧生代区。

  3.永久区:永久区总的数据不会清楚,即使程序出现了“OutofMemory”也不会清除。在java8中移除,改为元空间。

如何调整:

-Xms2048M-Xmx2048M-Xmn1024M

  。初始分配的内存大小,默认为物理内存的1/64,但是小于1G

  。最大分配内存,默认大小是物理内存的1/4,但是小于1G

  。设置伊甸园区的堆的大小。

只有调整之后才可以保证系统内存会得到提升,这样很明显。

 

以上是关于Java内存模型的主要内容,如果未能解决你的问题,请参考以下文章

详解Jvm内存结构

详解Jvm内存结构

java 片段将重用以前膨胀的根视图,这可以节省内存。好可怜 ......

Jvm内存模型

java内存模型的JMM简介

Java内存模型