2013-10-25 92 views
5

我创建了一个静态的类,这个类不保持状态(不保留上下文或任何变量)只是一个函数列表。 但是这个类在应用程序中并不是很常用,所以我决定让类可实例化。Android静态类与非静态类内存性能

为什么?

因为我认为一个可实例化的类将使用更少的内存,因为它在整个应用程序生命周期中不可用。

这是正确的吗?

静态类比非静态类使用更多的内存?

谢谢

+0

“静态类”不是标准术语。 “静态课堂”是什么意思?无论如何,答案可能是“不存在差异”。 – Joni

回答

9

我想你已经误解了班级的工作方式。任何类别的应用程序在整个生命周期内都是“可用的”。用于该类本身的内存(方法等)与实例所使用的内存大不相同。除非你真的创建了这个类的一个实例,它是无关紧要的。甚至可以实例化静态类 - 只是它们不保留对包含类的实例的隐式引用。

如果你的类实际上并不需要一个隐式引用(即它不使用它),那么把它作为一个静态嵌套类 - 或者把它作为顶级类来取出。 (嵌套类有时会很痛苦 - 关于顶级类的规则更简单。)

2

静态类本身不会使用比非静态类更多的内存。所有类都始终可用于应用程序中 - 您可以始终使用静态类或创建非静态类的实例。

如果您的类中只有方法(它们是辅助方法类型的方法),则更方便使用静态类(无需创建实例),并且不会影响内存使用情况。