JVM内存结构

把知道的java内存结构简单缕一缕

主要有这个几个
[b]方法区
堆(分代的)[/b]
这两个算是比较清晰的
还有一个不大清晰的 [b]JVM方法栈[/b]

方法区就是存放Class信息的 如类的继承层次,类的静态变量 有哪些字段 哪些方法等等
这块内存通过permSize maxPermSize来指定其大小

堆是保存对象的内存空间,你创建的每个对象都保存在堆中
堆的大小通过-Xms -Xmx来控制大小 通常设置
-Xms == -Xmx

堆是分代管理的,有新生代和旧生代
新创建的对象放在新生代,经过几轮GC仍然存活的会转到旧生代
大对象也可能直接分配到旧生代,至于多大要用-XX:PretenureSizeThreshold来指定

其中新生代有分为3部分 Eden S0 S1
可通过-Xmn来指定新生代的大小

栈:每个线程都对应一个栈,线程结束后栈内存被释放
栈的大小通过-Xss指定
栈中不会保存对象 只是保存对象的引用
但是会保存一些局部的基本类型 如 int long等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值