天天看點

java對象的作用域問題

Java對象不具備和基本類型一樣的什麼周期。例如下面這段代碼:

{

String s = new String("a string");
           
}
           

引用s在作 用域終點就消失了,然而,s所指向的String對象仍繼續占據記憶體空間。事實證明,有new建立的對象,隻要你需要。就會一直保留下去。 那麼這就會帶來一個有趣的問題,如果Java讓對象一直存在,那麼靠什麼才能防止這些對象充滿記憶體空間呢?這是會在C++中發生的問題。這也是 Java神奇所在。Java有一個垃圾回收器,用來監視用new建立的所有對象,并辨識那些不會被引用的對象。随後,釋放這些對象的記憶體空間,以便 供其他新的對象使用。