jvm内存结构
Posted dwdw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jvm内存结构相关的知识,希望对你有一定的参考价值。
java内存管理机制
Java采用了自动管理内存的方式
Java程序是运行在Jvm之中的
Java的跨平台的基于Jvm的跨平台特性
内存的分配和对象的创建是在Jvm中
用户可以通过一系列参数来配置Jvm
jvm运行区域
jvm运行 区域
栈内存
线程私有
生命周期和线程相同
主要存放内容
基本数据类型(int,char,float,double…)
对象的引用,指向了对象在堆内存中起始地址
通过-Xss参数配置大小(一个线程启动是申请的内存大小)
堆内存
堆内存是Jvm中空间最大的区域
所有线程共享堆
所有的数组以及内存对象的实例都在此区域分配
堆内存大小通过参数进行配置
-Xmx:最大堆内存
-Xms:最小堆内存
堆内存构成
新生代:包括三块区域,eden、from survivor(s0)、to survivor(s1)
老年代:old gen
Object o = new Object() 其中,o存放在栈内存中,new Object()存放在堆内存中,变量o是Object对象的引用,o上存放了Object对象占用内存的起始地址
永久代
永久代也叫(Method Area) 各线程共享,
主方法区要存放类信息、常量、静态变量,如 public static int a = 10
垃圾回收行为比较少见
以上是关于jvm内存结构的主要内容,如果未能解决你的问题,请参考以下文章