一直都认为java的垃圾清理器可以把这个工作给完完整整的给解决,没想到还是有一定的问题的。
java的垃圾回收器虽然负责回收无用对象占用的内存资源,但也有特殊情况:当你的对象并非是用new获得内存区域,垃圾回收器将不知道该如何释放该对象的这块“特殊的内存区域”。为了解决这个情况,java允许在类中定义一个名为finalize()方法,并且在下一次垃圾回收动作发生的时候,才会真正回收对象占用的内存。
finalize()不应该被用作通用的清理方法,之所以要有finalize(),是由于在分配内存时可能采用了类似C语言中的做法,而非java中的通常做法。(这种情况主要发生在使用“本地方法”的情况下)对于“本地方法”自己也不是太明白,好像意思就是java可以调用其他语言写的代码,在非java代码中,可能会调用类似于C中malloc()这样的函数,这些函数除非使用free()函数(这个是C和C++中的),否则不会得到释放。所以要使用finalize()用本地方法调用free()函数,这样当垃圾回收器的回收动作发生时,才会通过finalize()释放这些内存资源。
最后只得一提的是,无论是“垃圾回收”还是“终结”,都不保证一定会发生。如果java虚拟机(JVM)并未面临内存耗尽的情况,它是不会浪费时间去执行垃圾回收以恢复内存的。
分享到:
相关推荐
标题"JAVA注册表垃圾清理"表明这是一个使用Java编程语言开发的软件,其主要功能是清理计算机的注册表中的无用或废弃的条目,以提高系统性能和稳定性。注册表是Windows操作系统的核心组成部分,存储着系统和应用程序...
标题中的“纯java 清理系统 垃圾文件”指的是一个使用Java编程语言开发的系统垃圾文件清理工具。这个工具的主要功能是检测并删除计算机系统中无用的垃圾文件,以释放磁盘空间,提高系统性能。它可能是通过扫描特定...
在IT领域,尤其是在系统维护和优化的过程中,"(java)注册表清理"是一个常见的任务,主要是为了提升系统性能和稳定性。注册表是Windows操作系统的核心组件,存储着系统和应用程序的各种配置信息。随着时间的推移,...
清理缓存
java编程思想-初始化与清理了解this之后,你就能更全面地理解“静态(static)方法”的含义。静态方法就是没有this的方法。在“静态方法”的内部不能调用“非静态方法”,反过来倒是可以的。而且你可以在没有创建...
"Java定时清理过期文件的实例代码" 本文主要介绍了Java语言中实现定时清理过期文件的实例代码,通过使用Java的定时任务和递归删除文件的方法来实现文件的清理。下面将详细介绍这两个部分的知识点。 知识点1:Java...
这是一个简单的清理文件的小程序文件的小程序文件的小程序文件的小程序
在Java中,程序员无需显式地释放内存,而是依赖于垃圾回收器来完成这一工作,这降低了程序员的工作负担,同时也减少了因手动内存管理导致的错误。 总结起来,Java的初始化与清理机制是其安全性、可靠性和易用性的...
Java OCR 识别组件(基于Tesseract OCR 引擎)-能自动完成图片清理、识别 CAPTCHA 验证码图片内容的一体化工作.zip Java OCR 识别组件(基于Tesseract OCR 引擎)-能自动完成图片清理、识别 CAPTCHA 验证码图片内容...
可能的功能包括删除不再使用的版本库、清理工作副本、移除未版本化的文件或解决SVN冲突后的残留文件。这样的工具对于保持项目整洁和优化硬盘空间特别有用。 【标签】:“java swing svn awt j2se” - `java`:这...
Java初始化和清理是Java语言中非常重要的两个过程,它们确保了Java程序的正确运行和资源的有效管理。Java的初始化包括类的加载、连接和初始化三个过程,而清理则主要指垃圾回收机制。 首先,Java初始化的主要特性...
在日常的计算机维护工作中,我们经常会遇到软件安装失败的情况,尤其是在尝试重新安装相同版本的Java时。当Windows系统检测到注册表中有Java的相关记录时,即使该Java安装已被删除或者损坏,也会阻止新版本的安装,...
JAVA编写的svn文件夹清理工具。对于不熟悉命令行的很有用。
使用前建议备份重要数据,并了解工具的工作原理,以免误删重要文件。同时,定期更新工具和操作系统,以获取最新的安全防护和性能优化。 "Windows 系统清理 说明.txt"文件很可能是该工具的使用指南,包含了操作步骤...
清理手机运行内存的java小程序,一些低端手机运行较大程序时会提示内存不足,这个小程序就可以解决这些问题
本文将详细介绍如何在Java中实现自动化数据清理,包括数据清理的基本概念、常用的数据清理技术、实现步骤和代码示例。 自动化数据清理是确保数据质量和准确性的重要步骤。通过在Java中实现自动化数据清理,可以显著...
- 使用弱引用、软引用等机制来帮助垃圾回收器更高效地工作。 3. **监控与诊断**: - 使用JVM工具如VisualVM、JConsole等监控应用程序的内存使用情况。 - 分析堆转储文件(heap dump),找出占用内存较大的对象集合...
以下将详细介绍如何在Java项目中进行注释清理,以及涉及的相关工具和技术。 1. 使用MyEclipse清除Java代码注释 MyEclipse是一款功能丰富的Java集成开发环境(IDE),它提供了许多便捷的代码编辑和管理功能。在...
"java管理windows系统内存_java释放内存缓存_java获得CPU使用率_系统内存_硬盘_进程源代码" 在Windows操作系统中,内存管理是一个非常重要的方面。Windows实现按需调页的虚拟内存机制,使得应用程序可以使用超过...
Kettle的使用公式清理数据、Kettle的使用用户自定义Java表达式清理数据【ktr源文件】 实验内容如下: 掌握基于Kettle的使用公式清理数据 掌握基于Kettle的使用用户自定义Java表达式清理数据