gpt4 book ai didi

Java - 是否需要关闭 "new FileInputStream"?

转载 作者:行者123 更新时间:2023-11-30 05:54:42 30 4
gpt4 key购买 nike

在这段代码中:

Properties prop = new Properties();
prop.load(new FileInputStream("config.properties"));

某些属性已加载,但文件输入流是否需要关闭或它是否以某种方式自行处理?

我需要创建一个变量,新文件输入流,然后关闭变量吗?

我也想知道,如果我创建一个变量,比如 String a = nullint b;当它们什么都没有时会消耗内存吗?

如果我在方法或循环中有它,它在超出范围时是否仍然消耗内存?

我想有人曾经说过它加载到内存中但不是“Activity ”?

最佳答案

JVM 可能会快速收集垃圾并关闭 FileInputStream。在一个小脚本中,这样做很好。然而,规范的成语是:

FileInputStream fis;
try {
fis = new FileInputStream("config.properties");
prop.load(fis);
} finally {
fis.close();
}

对于变量,每个变量都是一个引用,即使什么都不存储也会占用8个字节的内存(int一般只会占用4个字节,booleans更优化,但这些都是特例)。一旦声明离开作用域,这些局部引用将不占用内存(因为它们的堆栈空间消失了),但您创建的任何对象都将存在,直到它们被垃圾回收。

关于Java - 是否需要关闭 "new FileInputStream"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9024867/

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