标签:内存泄露 xmx soft ane uil 缺点 blog 引用 程序
可达状态:当一个对象被创建后,有一个以上的引用变量指向它。
可恢复状态:
不可达状态:当对象的所有关联被切断,且系统调用所有对象的finalize方法依然没有使该对象变成可达状态,那该对象将永久性的失去所有引用,最后变成不可达状态。
强引用:
软引用:
弱引用:
虚引用:
串行(Serial)回收和并行(Parallel)回收:串行是始终只有一个CPU在执行垃圾回收操作;并行是把整个回收工作拆分成多个部分,每一部分由一个CPU负责,从而让多个CPU并行回收。并行回收效率高,但复杂度增加,内存碎片增加。
并发(Concurrent)执行和应用程序停止(Stop-the-world):
压缩(Compacting)、不压缩(Non-Compacting)和复制(Copying):为了减少内存碎片,支持压缩的垃圾回收器会把所有的活动对象搬迁到一起,然后将之前占用的内存全部回收。不压缩的垃圾回收只会回收内存,这样回收来的内存不是连续的,造成内存碎片。不压缩的相对于压缩式的,回收比较快,但内存分配慢。复制的垃圾回收会把所有的可达对象拷贝到另一块相同的内存中,优点是垃圾回收过程中不会产生内存碎片,缺点是需要复制数据和额外的内存。
标记清除(mark-sweep):不压缩
标记压缩(mark-sweep-compact):压缩式
yong:
old:
permanent:
-Xmx:java虚拟机堆内存的最大容量
-Xms:初始容量
-XX:MinHeapFreeRatio=40
-XX:MaxHeapFreeRatio=70
-XX:NewRatio=2
-XX:NewSize=64m
-XX:SurvivalRatio=8
-XX:MaxNewSize=128m
-XX:PermSize=128m
-XX:MaxPermSize=128m
串行回收器:yong,串行复制;old,串行标记压缩
并行回收器:
并行压缩回收器(Parallel Compacting Collector):
并发标记-清理(mark-sweep)回收器:
String str="hello world";
String str=new String("hello world");
obj=null;
与类的生命周期同步。
牺牲系统空间换取运行时间
在对象失去引用之后,垃圾回收器回收该对象之前,垃圾回收机制会先调用该对象的finalize方法进行资源清理。
标签:内存泄露 xmx soft ane uil 缺点 blog 引用 程序
原文地址:http://www.cnblogs.com/esther-qing/p/6694041.html