安卓静态类与非静态类的内存性能比较

7
我创建了一个静态类,这个类最初没有保留状态(没有保留上下文或任何变量),只是一组函数列表。但是这个类在应用程序中并不常用,所以我决定使它可以实例化。
为什么呢?
因为我认为可实例化的类会使用更少的内存,因为它在整个应用程序生命周期中都不可用。
这样做正确吗?
静态类比非静态类使用更多的内存吗?
谢谢。

"Static class" 不是一个标准术语。你所指的“静态类”是什么意思?无论如何,答案可能是“否,没有区别”。 - Joni
2个回答

11

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

如果您的类实际上不需要隐式引用(即不使用它),那么将其作为静态嵌套类-或者将其作为顶级类提取出来。(嵌套类有时可能很麻烦-顶级类的规则更简单。)


2

一个静态类本身并不比非静态类使用更多的内存。在应用程序中,所有类都是一直可用的 - 你可以始终使用一个静态类或者创建非静态类的实例。

如果你的类只包含方法(这些方法是helper方法类型),那么使用一个静态类更方便(不需要创建实例),也不会影响你的内存使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接