小编use*_*570的帖子

为什么我需要调用close()或shutdown()方法?

我是Java新手,在高中时期有一些C++背景.现在我正在努力创造一些东西,我选择Java作为编程语言.

我完成了我的作业,看了很多关于Java的"析构函数",finalize()方法和close()shutdown()方法.但我仍然认为我不知道这应该如何工作(当然下面有更多信息)

好的,具体的问题是为什么我需要调用close()shutdown()方法?

在我的特定情况下,我正在使用一个我没有开发处理智能卡读卡器的类,但我已经看到文件管理的情况,你必须调用close()方法,将类似.

不是调用close()方法与在C++中释放内存的想法相同(那很糟糕)?意思是,我必须处理对象的删除或破坏......不是GC的用途吗?

我试图用于智能卡读卡器的类不是最好的选项可能是一个选项,这个类实现finalize()方法可能更好,所以当不再使用并准备好GC时,释放内存(很可能是本机代码)和/或释放GC可能不知道如何操作的硬件资源.

但是文件管理类呢?那些是非常常用和维护的,为什么仍然需要close()方法?我理解存在的目的,解锁文件,但为什么我要记得关闭它?一旦不再使用该对象,则至少在最常见的情况下自动解锁文件.

最后,使用实现finalize()方法的类来包装需要关闭或关闭的类是否是一个正确的解决方法,我调用close()shutdown()方法?

我已经看到finalize()方法不是很受欢迎,所以这就是我问这个问题应该如何解决的原因.

提前致谢

胡安

PS:我见过的:

是否有Java的析构函数?

你为什么要实现finalize()?

http://www.codeguru.com/java/tij/tij0051.shtml

用Layman的术语解释Java中的close()方法

我需要关闭我执行File.getName()的文件吗?

java garbage-collection shutdown finalize

5
推荐指数
1
解决办法
1544
查看次数

标签 统计

finalize ×1

garbage-collection ×1

java ×1

shutdown ×1