查看: 711|回复: 0

[推荐] Java程序员深度剖析—Java堆

[复制链接]

54

主题

79

帖子

735

积分

Kib

Rank: 3Rank: 3

贡献
0
技术
0
活跃
20
在线时间
10 小时
发表于 2016-11-18 11:25:26 | 显示全部楼层 |阅读模式

  作为一个Java初学者,对于很多Java开发名词都会有兴趣,今天就Java堆问了一下资深大牛,且听Java大牛来做个讲解吧。
  对于大多数应用来说,Java堆是Java虚拟机所管理的内存中最大的一块,Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建,此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。这一点在Java虚拟机规范中的描述是:所有的对象实例以及数据都要在堆上分配,但是随着JIT编译器的发展与逃逸分析技术的逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化发生,所有的对象都分配在堆上也逐渐变得不是那么绝对了。
  Java堆是收集器管理的主要区域,因此很多时候也被称作GC堆。如果从内存回收的角度看,由于现在收集器基本都是采用的分代收集算法,所以Java对中还可以细分为:新生代和老年代。如果从内存分配的角度看,线程共享的Java堆中可能划分出多个线程私有的分配缓冲区。不过,无论如何划分,都与存放内容无关,无论那个区域,存储的都仍然是对象实例,进一步划分的目的是为了更好的回收内存,或者更快的分配内存。
  更多Java知识,Java视频,Java教程尽在动力节点,关注动力节点微信,得一手Java知识。

使用 高级模式(可批量传图、插入视频等)
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表