gpt4 book ai didi

java - 使用静态全局工作变量有优势吗?

转载 作者:行者123 更新时间:2023-12-01 17:29:39 25 4
gpt4 key购买 nike

这可能有点挑剔,但是使用全局静态字段作为一次性工作变量是否有任何时间/内存效率?给出一个简单的例子:

class theClass {

private static GregorianCalendar wkCal;
private static int wkTimes1;
private static int wkTimes2;
private static int wkTimes3;
private static StringBuilder wkSb = new StringBuilder();

void aMethod(int n) {
wkTimes1 = n * 1;
wkTimes2 = n * 2;
wkTimes3 = n * 3;
wkCal = new GregorianCalendar();
wkSb.setLength(0);
wkSb.append("A string");
// And so on...
}
}

此代码片段有可能被实例化多次 (> 3000),并且每次实例化都会使用多次 aMethod。此外,wk 前缀字段将在其他方法中使用,旨在保存仅用于中间计算的临时值。

在我看来,如果您注意使用全局变量的常见注意事项,这可以节省内存和时间。

最佳答案

如果您实例化它 3000 次(这并不算多),并且一次实例化的次数不止一次,那么您就需要一个很好的非确定性竞争条件。为什么不直接使用本地人并消除所有疑虑?

当方法运行完毕后,局部变量就会消失,这与实例变量不同,实例变量将在未来不确定的时间被GC。

关于java - 使用静态全局工作变量有优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12309128/

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