java静态变量内存什么时候释放?
When static variables memory will release in java?
我知道当变量超出范围时会释放非静态变量,但静态变量的范围在所有上下文中。
由于静态 classes/members 每个 class 加载器加载一次,当 class 加载器有资格进行 GC 时,静态成员也有资格进行 GC。
静态变量的内存是在程序开始时在常规内存中分配的,而不是堆栈(专门为程序预留的内存)。
这样做的好处是它使您的变量或过程完全不变,并且您不会意外更改值。这样做的缺点是在程序终止之前不会释放内存。我从来没有听说过静态值比定期声明它们占用更多的内存,但它们的内存使用是恒定的。
我知道当变量超出范围时会释放非静态变量,但静态变量的范围在所有上下文中。
由于静态 classes/members 每个 class 加载器加载一次,当 class 加载器有资格进行 GC 时,静态成员也有资格进行 GC。
静态变量的内存是在程序开始时在常规内存中分配的,而不是堆栈(专门为程序预留的内存)。 这样做的好处是它使您的变量或过程完全不变,并且您不会意外更改值。这样做的缺点是在程序终止之前不会释放内存。我从来没有听说过静态值比定期声明它们占用更多的内存,但它们的内存使用是恒定的。