JAVA虚拟机新生代,包括eden space+2个survivor空间。
新生代用来存放新近创建的对象,新生代的特点是对象更新速度快,在短时间内产生大量的“死亡对象”。对年轻代的垃圾回收称作次级回收 (minor gc)
1、新生代与次级回收
新生代分为三个区域, 一个eden spac , 2个大小相同的survivor, 应用程序只能使用一个eden和一个survivor, 当发生...
分类:
其他好文 时间:
2015-01-23 23:06:50
阅读次数:
300
当Java程序申请内存,超出VM可分配内纯的时候,VM首先可能会GC,如果GC完还是不够,或者申请的直接超够VM可能有的,就会抛出内 存溢出异常。从VM规范中我们可以得到,一下几种异常。 java.lang.StackO...
分类:
其他好文 时间:
2014-12-25 13:14:40
阅读次数:
145
为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这 类...
分类:
其他好文 时间:
2014-12-23 16:53:50
阅读次数:
185
为什么要分代 ?? ?分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 ? ?? ?在Java程序运行的过程中,会产...
分类:
其他好文 时间:
2014-12-19 19:26:47
阅读次数:
195
当Java程序申请内存,超出VM可分配内纯的时候,VM首先可能会GC,如果GC完还是不够,或者申请的直接超够VM可能有的,就会抛出内 存溢出异常。从VM规范中我们可以得到,一下几种异常。 java.lang.StackO...
分类:
其他好文 时间:
2014-12-03 12:38:41
阅读次数:
205
优化推荐系统的JVM关键参数-Xmx设定Java允许使用的最大堆空间。例如-Xmx512m表示堆空间上限为512MB-server现代JVM有两个重要标志:-client和-server,分别为客户端程序(运行时间短、占用资源少)和服务器端程序(长时间运行、资源密集型)选择合适的JVM配置。-d32...
分类:
其他好文 时间:
2014-11-11 15:55:12
阅读次数:
255
当Java程序申请内存,超出VM可分配内纯的时候,VM首先可能会GC,如果GC完还是不够,或者申请的直接超够VM可能有的,就会抛出内 存溢出异常。从VM规范中我们可以得到,一下几种异常。
java.lang.StackOverflowError:(很少)
java.lang.OutOfMemoryError:heap space(比较常见)
java.lang.OutOfMemoryErro...
分类:
其他好文 时间:
2014-10-29 21:35:04
阅读次数:
232
如何区分垃圾 上面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对象即可。但是这种方法无法解决循环引用。所以,后来实现的垃圾判断算法中,都是从程序运行的根节点出发,遍历整个对象引用,查找存活的对象。那么在这种方式的实现中,垃圾回收从哪儿开始的呢?即,...
分类:
其他好文 时间:
2014-10-22 20:22:31
阅读次数:
186
可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Swee...
分类:
编程语言 时间:
2014-10-20 20:54:06
阅读次数:
157
Java对象的大小 基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句: Object ob = new Object(); 这样在程序....
分类:
其他好文 时间:
2014-10-17 21:40:08
阅读次数:
187