博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中的析构以及回收资源
阅读量:6227 次
发布时间:2019-06-21

本文共 502 字,大约阅读时间需要 1 分钟。

在很多的面向对象的程序语言中,需要显式的对不再需要的对象进行析构操作,以便能够回收内存以及相关的资源(文件,句柄等),以C++作为典型的代表。

Java在回收内存和资源采取了不同的策略:

1. 内存:Java的GC自动的回收不会被再使用的对象所占用的空间,所以Java本身不支持析构

2. 资源:需要使用资源的方法显式的调用资源释放的方法(如文件中的close方法,画布等的dispose).

Java本身提供一个类似于其他对面语言中提供的析构方法 --> finalize方法  --> 该方法保证会在Java GC在真正回收内存空间之前调用该方法。然而Java的垃圾收集器对内存进行回收的时间是不确定的。所以不能将Java中的finalize方法等同于C++语言中的析构函数。尤其是在面对一些稀缺资源的回收的时候,更加不能将释放这种资源的动作放置在该方法中,因为该方法执行的时间是未知的,对于稀缺资源而言,是必须要在使用完毕了之后,尽快对资源进行释放的。

转载于:https://www.cnblogs.com/papertigerv5/archive/2012/09/26/2704914.html

你可能感兴趣的文章
table中超过长度的列,显示省略号
查看>>
Qtcreator中经常使用快捷键总结
查看>>
模块管理常规功能自己定义系统的设计与实现(16--模块数据的导出和打印[1])
查看>>
可扩展Web架构与分布式系统(转)
查看>>
KVM虚拟机的安装
查看>>
【转】PHP中require和include路径问题总结
查看>>
KS-检验(Kolmogorov-Smirnov test) -- 检验数据是否符合某种分布
查看>>
java 小数点取2位并且四舍五入
查看>>
web.xml 配置中classpath: 与classpath*:的区别
查看>>
osharp3引入事务后操作结果类别的调整
查看>>
[ZigBee] 6、ZigBee基础实验——定时器3和定时器4(8 位定时器)
查看>>
Jquery操作cookie
查看>>
Atitit 基于meta的orm,提升加速数据库相关应用的开发
查看>>
Spring:ApplicationContext (2)
查看>>
数据记录筛选
查看>>
windows 10专业版14393.447 64位纯净无广告版系统 基于官方稳定版1607制作 更新于20161112...
查看>>
Python正则表达式学习摘要及资料
查看>>
C++项目中的extern "C" {}
查看>>
Oozie分布式任务的工作流——脚本篇
查看>>
python的分布式爬虫框架
查看>>