栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

java内存池如何划分?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java内存池如何划分?

堆内存
堆内存是Java VM从中为所有类实例和数组分配内存的运行时数据区。堆的大小可以固定或可变。垃圾收集器是一个自动内存管理系统,可以回收对象的堆内存。

  • Eden Space:最初为大多数对象分配内存的池。

  • 幸存者空间:包含在Eden空间的垃圾回收中幸存的对象的池。

  • 终身生成或旧生成:包含幸存者空间中已存在一段时间的对象的池。

非堆内存
非堆内存包括在所有线程之间共享的方法区域以及Java VM的内部处理或优化所需的内存。它存储每个类的结构,例如运行时常量池,字段和方法数据,以及方法和构造函数的代码。方法区域在逻辑上是堆的一部分,但是根据实现的不同,Java VM可能不会对其进行垃圾回收或压缩。像堆内存一样,方法区域的大小可以固定或可变。方法区域的内存不必是连续的。

  • 永久生成:包含虚拟机本身所有反射数据的池,例如类和方法对象。对于使用类数据共享的Java VM,这一代被分为只读和读写区域。

  • 代码缓存:HotSpot Java VM还包括代码缓存,其中包含用于编译和存储本机代码的内存。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400387.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号