class StaticTest{
public static SomeClass statVar = new SomeClass();
}
之後如果我們訪問StaticTest.statVar
並隨機分配一些新對象,那麼當所有這些對象都會被垃圾回收?答:正常垃圾收集時間。由靜態變量引用的對象的垃圾收集
但是,如果這個statVar
引用了一些實例變量(對象)呢?
不清楚?好吧,靜態變量的生命期是直到類卸載。在Web應用程序中,我們正在靜態環境中初始化許多事情。如果我們爲這個靜態上下文提供了一些對象引用,但我們沒有釋放它們,那麼它如何被垃圾回收呢?
我很樂意就此進行討論。
你的問題目前還不清楚......如果你能提供一個具體問題的完整具體例子,這真的會有所幫助。 – 2012-08-10 19:54:11
「不釋放它們」是什麼意思?如果某個東西引用了一個值,它將不會被GCed。如果沒有提到它,它可能是。 – 2012-08-10 19:56:36
感謝您的所有答案。我有一些設計問題。對於每個請求都有對象被創建。所有請求的上下文都是相同的。如果通過上下文(Static here)變量給請求對象引用,那麼在服務器重啓之前這些對象從不會被垃圾回收?正確? – 2012-08-11 15:31:44