我知道当变量超出范围时会释放非静态变量,但静态变量的范围在所有上下文中。
答案 0 :(得分:2)
由于静态类/成员每个类加载器加载一次,当类加载器符合GC条件时,静态成员也有资格获得GC。
答案 1 :(得分:1)
静态变量的内存在程序开始时分配在常规内存中,而不是堆栈(专门为程序预留的内存)。 这样做的好处是它可以使您的变量或过程完全不变,并且您无法意外地更改该值。这样做的缺点是在程序终止之前不会释放内存。我从来没有听说过任何静态值占用的内存比定期声明的更多,但是它们的内存使用是不变的。