java - 选择何时实例化类

标签 java variables performance

我最近为一项作业编写了一个类,在该类中我必须将名称存储在 ArrayList 中(在 Java 中)。我将 ArrayList 初始化为实例变量 private ArrayList<String> names .后来当我根据解决方案检查我的工作时,我注意到他们已经在 run() 中初始化了 ArrayList。方法代替。

我考虑了一下,觉得这可能是一种品味问题,但一般来说,在这种情况下人们会如何选择呢?是占用内存少还是什么?

PS 我喜欢 Ruby 中以 @ 符号开头的实例变量:它们更可爱。

(元问题:这个问题的标题是什么更好?)

最佳答案

用伟大的 Knuth 的话来说“过早的优化是万恶之源”。

只需担心您的程序运行正常并且没有错误。这比以后难以调试的模糊优化重要得多。

但要回答你的问题——如果你在类成员中初始化,内存将在代码中第一次提到你的类时分配(即当你从它调用一个方法时)。如果您在方法中进行初始化,则内存分配会在稍后调用此特定方法时发生。

所以就只是后面初始化的问题了。。。业界称之为lazy initialization。

关于java - 选择何时实例化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/292363/

相关文章:

java - Apache Axis 响应无类型

java - 使用 JGraphx 重叠边缘

java - 当在方法中传递任何数组并在方法中操作数组时,为什么我的实际数组被操作

ios - 如何用双指针声明NSString变量

class - 在Flutter中的两个类之间传递变量

java - 减少来自 Java Lambda 的 DynamoDB 延迟

java - 如何使用 Guava 泛型来转换这张 map ?

javascript - 在js函数中定义一个变量然后在函数外使用它?

multithreading - 哪个更高效?更多内核或更多 CPU

java - Try-Catch block 的多种组合 - Java