《java编程思想》学习笔记二 java的finalize内存回收
来源:互联网 发布:苹果手机群发短信软件 编辑:程序博客网 时间:2024/06/17 00:57
一旦垃圾回收器准备释放内存资源的时候首先调用finalize()方法,并在下一次动作真正发生之前才会真正回收对象所占内存,finalize()做的事一些清理工作。有以下特点:
1 垃圾回收只与内存有关
2 对象可能不被垃圾回收
3 垃圾回收不是析构函数
4, 只要程序没有濒临内存耗尽的那一刻,对象占用的资源总得不到释放.直到程序结束后才彻底释放资源
finalize()方法的通用格式如下:
protected void finalize( )
{
// finalization code here
}
finalize() 是一个用于释放非 Java 资源的方法。但是,JVM 有很大的可能不调用对象的finalize() 方法.Java 1.1 通过提供一个System.runFinalizersOnExit() 方法部分地解决了这个问题。不象System.gc() 方法那样,System.runFinalizersOnExit() 方法并不立即试图启动垃圾回收器。而是当应用程序或 Applet 退出时,它调用每个对象的finalize() 方法。通过调用System.runFinalizersOnExit() 方法强制垃圾回收器清除所有独立对象的内存,当清除代码执行时可能会引起明显的延迟。
垃圾回收器工作方式:
停止----复制 先暂停运行程序,吧需要的对象复制搬迁出来,然后删除掉之前的内存空间,这样可以避免碎片的出现,复制出来的对象可以放在一个连续的内存空间中
标记----清扫 从堆栈和静态存储区出发,遍历所有引用,找出所有存活的对象,所有标记的对象不被回收。 这样有个缺点就是回收过后的内存空间是不连续的,如果想得到连续的对象就得要重新整理了
- 《java编程思想》学习笔记二 java的finalize内存回收
- JAVA编程思想学习笔记(二)
- java编程思想学习笔记(二)
- 《java编程思想》学习笔记(二)
- java编程思想学习之垃圾回收
- 学习笔记-java内存回收
- java内存回收之finalize()方法原理
- Java编程思想笔记-二
- 编程学习笔记之java相关::内存回收原理
- Java的“对象思想”学习笔记[二]
- java 编程思想的学习笔记
- java 编程思想的学习笔记
- java 编程思想的学习笔记
- java 编程思想的学习笔记
- JAVA编程思想学习笔记
- JAVA编程思想 学习笔记
- java编程思想学习笔记
- Java编程思想学习笔记
- 知识点:keep-alive
- CV 2017-02-22
- 百练:简单整数划分
- 架构设计:系统存储(24)——数据一致性与Paxos算法(中)
- 大数据-Hadoop学习笔记02
- 《java编程思想》学习笔记二 java的finalize内存回收
- 【OJ2.2递归】1788:Pell数列--斐波拉契数列的进阶
- response的setCharacterEncoding和setContentType方法的区别
- 浅谈get和post请求的区别
- 关于RadioButton连续点击“刷新”问题解决
- 170313-pyGUI爬虫和正则回溯陷阱
- 递归:求波兰表达式
- Intellij IDEA中生成foreach或者loop或普通for的快捷键
- 3.1坑爹的奥数