在我的公司,我的同事说:“在Flutter中,静态使用对内存非常有害。你不应该过多地使用静态变量。”
在那之后,我在网上搜索,但我没有找到满意的答案。所以,我只是想知道,如果我像下面的代码行那样使用静态值,会增加内存使用量还是降低性能?非常感谢。
class {
static final String name="asd";
static final String surname="ajskandkanjsd";
static final Int age=123;
static final isStudent=false;
static final String email="asked@gmail.com";
static final Int password=1231234;
}
2条答案
按热度按时间dgtucam11#
不,它不会影响内存和性能,因为静态变量的内存分配只在类加载时在类区域中发生一次。如果您不使其成为静态的,则每次创建类的新对象时都会占用新的内存空间。因此,它会增加内存使用。
b5lpy0ml2#
被
static
(或等价的全局)变量引用的对象将在程序的生存期内存在。垃圾回收器永远不会释放它,直到程序终止或显式删除该引用(例如,通过重新分配static
变量以引用其他对象)。由于
static
对象通常是长寿命的,它们可能会增加内存使用。然而,这通常不是问题,因为在你的程序中有一个固定的(不是很大)数量的static
变量。它们通常不会消耗无限的内存量。如果
static
变量引用(直接或间接)某个可以无约束地动态增长的集合对象(a cache with a bad policy is another name for a memory leak),这 * 可能 * 是一个问题,但对于任何长期存在的集合来说,这都是需要注意的事情,而且根本不特定于static
/全局变量。