关于垃圾回收
来源:互联网 发布:淘宝县级服务站加盟 编辑:程序博客网 时间:2024/05/16 10:32
垃圾回收器(Garbage collectors、GC),我们所需要知道的:
- GC是软件工程工具。1958年John McCarthy 发明Lisp语言时,为了解决堆的手工管理问题而首创了垃圾回收器。它杜绝了内存泄漏和悬挂引用。注:Java与C++的泄漏是两个概念,C++如同遗失了存折(假设不能够挂失),Java如同在家里收藏了一大堆不用的存折(有人有这个怪癖,咋整)。没有GC支持的语言,除非不用或尽量少地、谨慎地使用heap,否则在软件工程看来是垃圾语言,如C++。
- 有作者指出:在没有垃圾回收的情况下,复杂系统的内存管理问题不可能得到解决,除非程序在设计时就把正确管理内存作为其主要目标。
- “If Java had true garbage collection, most programs would delete themselves upon execution.” — Robert Sewell。:)
- 垃圾回收的原理:除非正在读博士,了解直观的引用计数(reference counting)技术,或者stop-and-copy algorithm(SICP)即可。各种垃圾回收原理的文章,直接跳过,看了也白看。
- 一些非内存资源:如打开文件的数量、底层网络通信的套接字资源等等,需要释放。只要资源属于java.lang.AutoCloseable,使用Java7引入的try-with-resources语句。而finalize() 极少被用到,而且在使用它的时候要多加小心,由于我们无法把握对象何时被清除。
- gc() 和runFinalization(),如同山盟海誓,太当真不好。
- 尽管有后台运行的GC能够自动管理堆,在程序设计时,还是要尽可能地减少垃圾和减少GC过程中的开销。例如尽可能减少临时对象、少用String的串接运算符、能够使用基本类型就不使用包装类如Integer对象等。
- 不必太在意内存回收问题。
- 书上给出的链接:Richard Jones 维护的Garbage Collectionpage :http://www.cs.kent.ac.uk/people/staff/rej/gc.html.
the Garbage Collection page is a comprehensive resource for automatic dynamic memory management a.k.a garbage collection. As well as links to my book on garbage collection and my online, searchable memory management bibliography (over 1,900 entries), it includes links to other garbage collection resources such as software and conference proceedings.
0 0
- 关于垃圾回收
- 关于java垃圾回收
- 关于java垃圾回收
- 关于垃圾回收机制
- 关于垃圾回收
- 关于垃圾回收器
- 关于Java垃圾回收
- 【JVM】关于垃圾回收
- 关于垃圾回收
- 关于垃圾回收
- 【转载】关于垃圾回收机制
- 关于垃圾回收的总结
- 关于AS3的垃圾回收
- 关于java垃圾回收问题
- 关于垃圾回收的小结
- 关于javascript垃圾回收机制
- 关于.NET 垃圾回收机制
- 关于垃圾回收的一些知识
- javascript获得滚动条高度
- 一个五年Android 开发者百度、阿里、聚美、映客的面试心经(转)
- 页面渲染,不能加载下一页数据
- ReactiveCocoa 使用3
- win7_64bits下QT使用openCV库(3)
- 关于垃圾回收
- 崔希凡-javaWeb-笔记day04-day06(2016年7月8日15:54:16)
- JAVA 判断空
- MongoDB World 2016参会全记录
- cocos2dx源码分析:内建着色器
- ORA-01618: redo thread 2 is not enabled - cannot mount RAC
- 设置Activity的开始动画和结束动画
- 现在应该投资买房吗?
- Yii2 关闭csrf和布局的关闭开启