在我公司,我的队友说“在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="[email protected]";
static final Int password=1231234;
}
由
static
(或等效的全局)变量引用的对象将在程序的生命周期中存在。 垃圾收集器永远不会释放它,直到您的程序终止或您明确删除该引用(例如通过重新分配您的 static
变量以引用不同的对象)。
由于
static
对象通常寿命较长,因此它们可能会增加内存使用量。 然而,这通常不是问题,因为程序中有固定数量(通常不是很大)的 static
变量。 它们通常不会消耗无限量的内存。
如果您有一个 static
变量引用(无论是直接还是间接)某个可以不受限制地动态增长的集合对象,那么这
可能会是一个问题(具有错误策略的缓存是内存泄漏的另一个名称 ),但对于任何长期存在的集合来说,这是需要注意的事情,并且不会特定于
static
/全局变量。