0

我只是困惑,并试图找出是否是一个好主意将全局静态变量声明为空是一种很好的做法吗?

  • 要声明为null静态变量在全球一类 可以被所有其他类访问?
  • 这能否以一种好的方式或不好的方式影响整个应用程序的性能 ?
+1

“有一个好主意,有静态变量”没有。 “宣布为空”不。它们已经隐含地为'null'。 “影响性能”否。但是它们引入了全局状态,它有很多缺点,包括内存泄漏 – zapl

+2

全局静态运行良好的情况是当变量为“final”时。 – Santosh

回答

1

要声明为空静态变量在全球范围内,可以通过 所有其他类访问的类?

你什么时候认为适合初始化那个空的全局变量?你可以声明它指向某个东西,使用一个静态块,或者创建一个类似于单例的方法来首次使用时初始化引用。而已。

Google认为全局静态变量是一个坏主意。你应该拥有它们吗?也许你应该考虑一下,而不是初始化它们。

这是否会影响整个应用程序的性能? 以好的方式还是坏的方式?

这是不太可能的,除非初始化需要太长的时间来满足您的需求。你不应该假设你知道什么会影响性能。编写代码并在有意义的条件下进行分析,以了解什么是重要的。

1
  • 要在能够被所有其他类访问一个类被声明为空全局静态变量?

    这取决于。如果您没有明确初始化它们,它们将会采用它们的默认值(对象为null)。这对您的特定应用程序有意义吗?或者是否有意义使用默认值为其成员初始化对象?

  • 这会影响整个应用程序的性能,无论是以一种好的方式还是坏的方式?

    当您分配对象时,它们将占用堆上的空间。分配太多会减慢你的应用程序。所以是的,如果你有大量的对象,它会影响性能,所以它取决于你的应用程序将分配多少对象。

相关问题