gpt4 book ai didi

java - 程序退出时JVM不释放所有没有被程序员显式关闭的资源吗

转载 作者:搜寻专家 更新时间:2023-10-31 19:55:52 24 4
gpt4 key购买 nike

我一直听说java中的资源在使用后必须关闭,否则这些资源会被耗尽。对于使用很少资源(例如 1 或 2 个文件读取器/缓冲读取器等)的小程序来说,这真的是一个值得关注的问题吗? JVM 不会跟踪程序使用的资源吗?一旦程序退出,它不会释放所有这些资源吗?如果不是,为什么 JVM 会在程序退出后仍阻塞这些资源?

最佳答案

这些资源确实在正常的 JVM 退出时关闭。但是,您可能并不总是知道您的方法是如何被调用的,它可能会被另一个程序员从外部调用 2000 次,这些资源将开始堆积起来。

此外,某些非主流操作系统可能会遇到这样的问题,即如果 JVM 异常停止(通过 Runtime.getRuntime().halt() 或重大内部错误/内部不一致JVM)然后资源可以保持打开状态(由于清理代码未运行),在重新启动或手动释放之前可能无法使用。即使在主流系统上,套接字也可以保持打开状态数分钟。

关于java - 程序退出时JVM不释放所有没有被程序员显式关闭的资源吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18654570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com