Java学习之System.gc和System.runFinalization
2018-03-19 23:01
190 查看
(1)System.gc();
//告诉垃圾收集器打算进行垃圾收集,而垃圾收集器进不进行收集是不确定的
new Chair();
System.gc(); 这个不一定会执行Chair对象的finalize方法 你可以这样测试
while(true){
System.gc();
}
这样执行会看到Chaeir对象执行他的finalize方法
(2)System.runFinalization();
//强制调用已经失去引用的对象的finalize方法
这样使用
System.gc();
System.runFinalization();
要在runFinalization之前执行gc();
总结:
finaliztion是个可以被应用层重载的函数,当GC回收一个对象时,它会先调用对象的这个函数然后再处理其它事情。
所以应用可以重载这个函数,去做一下想在GC前收尾的工作
前者是把占了内存但是没有利用,同时没有被垃圾回收机制处理的对象尽可能的处理掉。
后者是强制垃圾回收机制尽可能的回收没有被利用的对象,以释放出其占用的内存。
转载来源 http://blog.csdn.net/qq_36291682/article/details/53455643
//告诉垃圾收集器打算进行垃圾收集,而垃圾收集器进不进行收集是不确定的
new Chair();
System.gc(); 这个不一定会执行Chair对象的finalize方法 你可以这样测试
while(true){
System.gc();
}
这样执行会看到Chaeir对象执行他的finalize方法
(2)System.runFinalization();
//强制调用已经失去引用的对象的finalize方法
这样使用
System.gc();
System.runFinalization();
要在runFinalization之前执行gc();
总结:
finaliztion是个可以被应用层重载的函数,当GC回收一个对象时,它会先调用对象的这个函数然后再处理其它事情。
所以应用可以重载这个函数,去做一下想在GC前收尾的工作
前者是把占了内存但是没有利用,同时没有被垃圾回收机制处理的对象尽可能的处理掉。
后者是强制垃圾回收机制尽可能的回收没有被利用的对象,以释放出其占用的内存。
转载来源 http://blog.csdn.net/qq_36291682/article/details/53455643
相关文章推荐
- 关于Java中System.gc() 与System.runFinalization()
- Java 强制执行垃圾回收 System.gc()、System.runFinalization()
- system.gc()和system.runFinalization()区别作用
- System.gc()和System.runFinalization()
- System.gc()和System.runFinalization()
- Java学习笔记48:探秘Java虚拟机 gc的监控
- 学习官方示例 - System.RunError
- JAVA学习笔记--关于System.out.println()
- java学习之路---IO----System和BufferReader类
- 浅谈Java中的System.gc()的工作原理
- 【JAVA学习】解释一个简单的语句 System.out.println
- java基础(二)------学习system类的几点收获(二)
- 浅谈Java中的System.gc()的工作原理
- Java学习--能不能自己写个类,也叫System.lang.String?
- Java学习笔记--System.out.println();
- Java.lang.System.gc() 工作原理 以及一些疑问
- JAVA学习笔记(四)substring、System.exit(1)、java.text.SimpleDateFormat、==、equals、StringBuffer、SQl动态查询
- 学习官方示例 - System.RunError
- Java学习日志--其他对象System
- java基础(一)-----学习system类的几点收获(一)