路漫漫,水迢迢

八十一难拦路七十二变制敌

深入理解JVM:垃圾收集算法

标记-清除算法 首先标记出所有需要回收的对象,在标记完成以后统一回收所有被标记的对象,之所以说他是最基础的收集算法,是因为后续收集算法都是基于这种思路并对其不足进行改进而得到的。他的不足主要有两个:一是效率问题,标记和清除过程的效率都不高;另一个是空间问题,标记清除之后会产生大量不连续内存碎片,...

2015-09-07 16:47:31

阅读数:540

评论数:0

深入理解JVM:垃圾收集器与内存分配策略

堆里面存放着Java世界几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还存活,哪些已经死去。判断对象的生命周期是否结束有以下几种方法 引用计数法 具体操作是给对象添加一个引用计数器,每当有一个地方引用时,计数器的值就加1,;当引用失效时,计数器就减1;任何...

2015-08-18 20:05:03

阅读数:834

评论数:0

深入理解JVM:OutOfMemory实战

除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(OOM),下面我们来详细分析。 Java堆溢出 Java堆用于存储对象实例,只要不断的创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制来清除这些对象,那么对象数量到达最大堆容量限制...

2015-08-13 18:24:11

阅读数:1063

评论数:0

深入理解JVM:HotSpot虚拟机对象探秘

对象的创建 java是一门面向对象的语言,在Java程序运行过程中无时无刻有Java对象被创建出来。在语言层面上,创建对象(克隆、反序列化)通常是一个new关键字而已,而在虚拟机中,对象的创建过程如下: 1、当虚拟机遇到new指令时,首先将去检查这个指令参数是否能在常量池中定位到一个类的引用符...

2015-08-11 19:17:17

阅读数:1879

评论数:2

深入理解JVM:JVM运行时数据区域分类

JVM在执行java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途和创建、销毁时间。有些区域随着虚拟机的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范1.7》规定,Java虚拟机所管理的内存分为以下几个区域: 程序计数器、J...

2015-08-09 19:43:49

阅读数:1741

评论数:1

提示
确定要删除当前文章?
取消 删除