看板 java 關於我們 聯絡資訊
最近剛開始學JAVA 所以遇到了點問題想請教各位大大 因為我從書上看到他寫說 static variable在該class第一次被初始化後會被建立起來 爾後該class的object操作到的都會是同一個static variable 但書上卻沒有提到說 若所有的object被摧毀時 則此static variable會如何? 那如果此時再新增一個此class的object的話 則static variable會被renew還是會是同一個呢? 另外想詢問一下 此變數在記憶體中到底是如何操作的 因為為何可以所有object都refer到同一個變數 感謝大大的回答了<(_ _)> 如果有表達不清 或是搞錯的地方 還煩請賜教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.29.49
mars90226:static的變數是跟著class的,所以應該不會被摧毀 08/27 00:09
mars90226:因為是跟著class,所以永遠都是同一個 08/27 00:12
LaPass:一直都會在,直到該class被unload 08/27 00:44
LaPass:建議找說明jvm相關的書來看,他會說jvm怎麼處理記憶體,有 08/27 00:50
LaPass:專門的記憶體區塊是專門拿來放class的格式、static之類的 08/27 00:54
alan77916:感謝大大們的指導 那我大概了解了 我在去翻相關資料看看 08/27 15:04
alan77916:所以JVM會先把class當必要了解的資訊載進來(當new他時?) 08/27 15:10
LaPass:嚴格說:是在保證在new之前一定會載入。不過你想當他第一次 08/27 15:23
LaPass:new的時候載入也OK,因為通常是這種狀況。除非去使用static 08/27 15:26