前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 堆内存简介

Java 堆内存简介

作者头像
潇洒
发布2023-10-20 09:53:37
1270
发布2023-10-20 09:53:37
举报
文章被收录于专栏:石头岛

Java 堆 是虚拟机管理的最大的一块内存。是被所有线程所共享的一块内存区域,在虚拟机启动时创建。

分配内存方式

所有的实例和数组都在要堆上分配,但是随着JIT编译器的发展与逃逸分析技术的逐渐成熟,栈上分配、标量替换优化技术将会导至一些变化,所有的对象都分配在堆上也变得不那么绝对。

Java 堆是垃圾收集器管理的主要区域,也叫CG堆。由于现在收集器基本都爱用分代收集算法, 所以Java堆中还可以细分为: 新生代老年代。再细致一点的有: Eden 空间From Survivor 空间To Survivor 空间等。从内存分配的角度来看,线程共享的Java堆中可能划多个线程私有的分配缓存区。

如何划分与存放内容无关,无论哪个区域,存储的都仍然是对象实例。进一步划分的目的是为了更好的回收内存、或都更快的分配内存。

存放特点

Java 堆可以处于物理上不连续的内存空间中,只要逻辑上是连续的即可,就像磁盘空间。 堆的实现,即可固定大小,也可以扩展,通过 -Xms 和 -Xmx 控制。 如果堆中没有内存实例分配,并助理堆无法再扩展时,抛出 OutOfMemoryError

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分配内存方式
  • 存放特点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档