我创建了一个静态的类,这个类不会持久化状态(不保留上下文或任何变量)只是一个函数列表。 但是这个类在应用程序中并没有被使用,所以我决定使类可以实现。
为什么?
因为我认为可实例化的类会占用更少的内存,因为它在整个应用程序生命周期中都不可用。
这是对的吗?
静态类比非静态类使用更多内存?
谢谢
答案 0 :(得分:10)
我认为你误解了课程的运作方式。任何类型的课程都是可用的#34;在应用程序的整个生命周期中。用于类本身的内存(方法等)与实例使用的内存非常不同。除非您实际上创建类的实例,否则它是无关紧要的。甚至可以实例化静态类 - 它只是他们不会保持对封闭类的实例的隐式引用。
如果你的班级实际上并不需要隐式引用(即它没有使用它),那么将它作为一个静态嵌套类 - 或者将其作为顶级类拉出来。 (嵌套类有时会很痛苦 - 关于顶级类的规则更简单。)
答案 1 :(得分:2)
静态类本身并不比非静态类使用更多内存。所有类始终在应用程序中可用 - 您始终可以使用静态类或创建非静态类的实例。
如果你的类中只有方法(它们是辅助方法类型),静态类使用起来更方便(不需要创建实例)并且不会影响你的内存使用。