我是 Java 新手,高中时有一些 C++ 背景。现在我正在尝试做一些事情,我选择了 Java 作为编程语言。
我已经完成了我的作业并查看了很多关于 Java 的“析构函数”的内容,完成()方法,以及close() or 关闭()方法。但我仍然认为我不知道这应该如何工作(当然更多信息如下)
好的,具体问题是为什么我需要打电话close() or 关闭()方法?
在我的特定情况下,我正在使用一个我没有开发的处理智能卡读卡器的类,但我已经看到文件管理的情况,您必须调用close()方法,会类似。
不是叫一个close()方法与 C++ 中释放内存的想法相同(这很糟糕)?意思是,我必须处理对象的删除或销毁...GC 不是用来的吗?
我尝试用于智能卡读卡器的类可能不是最好的,该类实现以下功能可能会更好完成()方法,因此当不再使用并准备好进行 GC 时,会释放内存(很可能是本机代码)和/或释放 GC 可能不知道如何执行的硬件资源。
但是文件管理类呢?这些都非常使用和维护,为什么还需要一个close()方法?我明白存在的目的,解锁文件,但为什么我必须记住关闭它?一旦不再使用该对象,就会自动解锁该文件,至少在最常见的情况下是这样。
最后,将需要关闭或关闭的类包装为实现完成()方法,我称之为close() or 关闭() method?
我已经看到了完成()方法不是很流行,所以这就是为什么我问这个问题应该如何解决。
提前致谢
Juan
PS:我所看到的:
Java 有析构函数吗? https://stackoverflow.com/questions/171952/is-there-a-destructor-for-java
为什么要实现finalize()? https://stackoverflow.com/questions/158174/why-would-you-ever-implement-finalize
http://www.codeguru.com/java/tij/tij0051.shtml http://www.codeguru.com/java/tij/tij0051.shtml
通俗地解释一下Java中的close()方法 https://stackoverflow.com/questions/7118603/explain-the-close-method-in-java-in-laymans-terms
我是否需要关闭执行 File.getName() 的文件? https://stackoverflow.com/questions/8211760/do-i-need-to-close-files-i-perform-file-getname-on