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

我是

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

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

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

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

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

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

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

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

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

提前致谢

胡安

PS:我见过的:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值