如果未手动关闭流,流何时关闭?
2022-09-04 07:58:12
我想知道如果流没有手动关闭,它何时关闭。我的意思是,如果流的引用范围不再存在,它是否会被关闭?
请考虑以下示例方案。
Class A{
InputStream in;
OutputStream out;
A(){
// Initialize and create the streams.
}
...
}
Class B{
public void myMethod(){
A a = new A();
System.out.println("End of my method.")
}
...
}
在这里,一旦我完成了流,我就退出了,但程序反过来的过程不会终止并继续执行其他操作。myMethod()
我没有关闭流。一旦对类A的引用范围结束,它会自动关闭吗?(即何时结束)?GC会照顾到这一点吗?另外,我读到,一旦进程结束,流将被关闭,系统将释放为其保留的所有资源用于其他进程。我们如何检查流是否打开?Java中是否有任何linux命令或选项来检查这一点?myMethod()
任何帮助是值得赞赏的!