当静态变量内存将在java中发布?

时间:2015-08-22 12:53:50

标签: java oop static jvm java-memory-model

我知道当变量超出范围时会释放非静态变量,但静态变量的范围在所有上下文中。

2 个答案:

答案 0 :(得分:2)

由于静态类/成员每个类加载器加载一次,当类加载器符合GC条件时,静态成员也有资格获得GC。

答案 1 :(得分:1)

静态变量的内存在程序开始时分配在常规内存中,而不是堆栈(专门为程序预留的内存)。     这样做的好处是它可以使您的变量或过程完全不变,并且您无法意外地更改该值。这样做的缺点是在程序终止之前不会释放内存。我从来没有听说过任何静态值占用的内存比定期声明的更多,但是它们的内存使用是不变的。