finalize方法详解编程语言
2023-06-13 09:20:46 时间
什么是垃圾回收机制
不定时去堆内存中清理不可达对象。不可达的对象并不会马上就会直接回收, 垃圾收集器在一个Java程序中的执行是自动的,不能强制执行,即使程序员能明确地判断出有一块内存已经无用了,是应该回收的,程序员也不能强制垃圾收集器回收该内存块。程序员唯一能做的就是通过调用System.gc 方法来 建议 执行垃圾收集器,但其是否可以执行,什么时候执行却都是不可知的。这也是垃圾收集器的最主要的缺点。当然相对于它给程序员带来的巨大方便性而言,这个缺点是瑕不掩瑜的。
C语言是需要手动申请内存 手动释放内存的
Java是自动的
不可达对象:对象没有被引用或者对象没有存活
finalize() 垃圾回收之前 会执行的方法 是Object里面的
package jvmTest; public class test01 { //没有继续被引用 没有存活 没有被继续使用 public static void main(String[] args) { Object object = new test01(); //这种是可以到达的 object=null; //表示不可达对象 提示jvm回收 System.gc(); @Override protected void finalize() throws Throwable { System.out.println("垃圾收集开始执行此方法了"); }
注意 finalize是Object里面的所以 new 的对象也是 Test01的
Sysout.gc( ) 提示gc进行回收垃圾 但是不代表里立即回收
GC线程是守护线程 垃圾回收不定时去回收不可达对象 (通过算法判断是不可达,强制标识null时候那直接就是了) gc线程不定时的回收垃圾
finalize方法作用
Java技术使用finalize()方法在垃圾收集器将对象从内存中清除出去前,做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/16194.html
cjava相关文章
- 5 种使用 Python 代码轻松实现数据可视化的方法详解编程语言
- java cookie操作的封装 常用判断方法的封装详解编程语言
- Java 服务器获取请求的IP方法详解编程语言
- jquery操作checkbox方法(全选、全不选、至少选择一个、选择值/文本)详解编程语言
- java基础学习总结——方法的重载(overload)详解编程语言
- nodejs中的方法和模块的使用详解编程语言
- 解决Vue中”This dependency was not found”的方法详解编程语言
- Maven项目mybatis Invalid bound statement (not found)解决方法详解编程语言
- Spring Boot全局支持CORS(跨源请求)的配置方法详解编程语言
- 在JavaScript文件中读取properties文件的方法详解编程语言
- JAVA遍历Map的方法详解编程语言
- Function eregi is deprecated (解决方法)详解编程语言
- Java 读取clob字段的几种方法详解编程语言
- Python Set intersection() 方法详解编程语言
- 获取body标签元素方法详解编程语言
- javascript 过滤中文汉字和 过滤中文汉字和符号的方法详解编程语言
- jquery each循环遍历完再执行的方法详解编程语言
- css3 font-spider压缩自定义字体的方法详解编程语言
- php 根据ip获取地区的方法详解编程语言
- PHP实现不用事务mysql的另类方法详解编程语言
- phpexcel导出数字带E的解决方法详解编程语言
- PHP压缩文件夹的方法详解编程语言
- ABAP-ALV-如何去掉OO方法中的ALV的标准按钮详解编程语言
- ABAP 报表求和统计功能实现方法详解编程语言
- ALV GRID 使用过滤器(FILTER)的方法详解编程语言
- alv中,在条件过滤后,全选或取消全选时,会影响到所有数据(不仅仅过滤后的数据)的解决方法详解编程语言
- Cloneable接口和Object的clone()方法详解编程语言
- python通过http(multipart/form-data)上传文件的方法详解编程语言