java VM
bubbleTg
学习就对了
展开
-
java VM(1)之运行时数据区域
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则依赖用户进程的启动和结束来建立和销毁。 根据《Java虚拟机规范》的规定,Java虚拟机所管理的内存将会包括以下几个运行是数据区域: 程序计数器 程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指...原创 2019-04-04 14:25:31 · 159 阅读 · 0 评论 -
java VM(2)之对象已死???
从标题可以看见,此片文章讲的是对象是否已经死了??主要用到以下算法: 引用计数算法 简单的讲:就是给对象添加一个计数器,当有一个地方引用它时,计数器值加一,引用失效时,计数器减一,当计数器为零时则表示对象不能再被使用。 但是在主流的Java虚拟机中没有选用计数算法来管理内存,主要的原因是它很难解决对象之间相互引用的问题。 如: public class ReferenceCountingGC {...原创 2019-04-07 16:05:39 · 173 阅读 · 0 评论 -
java VM(2)之垃圾收集算法
标记-清楚算法 如它名字一样,算法分为标记和清除两个阶段,首先标记出所需要回收的对象,在标记完成后统一回收所有被标记的对象。 它的主要不足有两个:一个是效率问题,标记和清除这两个过程的效率都不高,一个是是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。 复制算法...原创 2019-04-08 15:15:26 · 135 阅读 · 0 评论 -
java VM(3)之垃圾收集器
HotSpot虚拟机包含的垃圾收集器如下图(来源深入理解Java虚拟机): 图中展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用。 Serial 收集器 Serial收集器是最基本,发展历史最悠久的收集器。这个收集器是一个单线程的收集器,单线程的意义并不是说明她只会使用一个CPU或一条收集线程去完成垃圾收集工作,更重要的是她在进行...转载 2019-04-13 15:32:58 · 190 阅读 · 0 评论