7

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

为什么?

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

这是正确的吗?

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

谢谢

4

2 回答 2

11

我认为您误解了课程的运作方式。在应用程序的整个生命周期中,任何类型的类都是“可用的”。用于类本身(方法等)的内存与实例使用的内存非常不同。除非您实际创建该类的实例,否则它是无关紧要的。甚至静态类也可以被实例化——只是它们不维护对封闭类实例的隐式引用。

如果您的类实际上不需要隐式引用(即它不使用它),则将其设为静态嵌套类 - 或将其作为顶级类拉出。(嵌套类有时会很痛苦——顶级类的规则更简单。)

于 2013-10-25T08:24:12.320 回答
2

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

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

于 2013-10-25T09:15:26.183 回答