我是 Java 新手,高中时有 C++ 方面的背景。现在我正在尝试做点什么,我选择了 Java 作为编程语言。
我已经完成了我的功课,并且看了很多关于 Java 的“析构函数”、finalize()方法和close()或shutdown()方法的信息。但我仍然认为我不知道这应该如何工作(当然下面有更多信息)
好的,具体问题是为什么我需要调用close()或shutdown()方法?
在我的特殊情况下,我正在使用一个我没有开发的处理智能卡读卡器的类,但我已经看到文件管理的情况,你必须调用close()方法,将是相似的.
调用close()方法与在 C++ 中释放内存的想法不同(很糟糕)吗?意思是,我必须处理对象的删除或销毁......不是GC吗?
我尝试用于智能卡读卡器的类可能不是最好的,这可能是一个选项,这个类实现finalize()方法可能会更好,这样当不再使用并准备好进行 GC 时,释放内存(很可能是本机代码)和/或释放 GC 可能不知道如何做的硬件资源。
但是文件管理类呢?这些都非常使用和维护,为什么仍然需要close()方法?我明白存在的目的,解锁文件,但为什么我要记得关闭它?一旦不再使用对象,然后自动解锁文件,至少在最常见的情况下是这样。
最后,用实现finalize()方法的类包装需要关闭或关闭的类,并在那里调用close()或shutdown()方法是否是一种适当的解决方法?
我已经看到finalize()方法不是很流行,所以这就是为什么我要问这个问题应该如何解决。
提前致谢
胡安
PS:我所看到的:
http://www.codeguru.com/java/tij/tij0051.shtml