作者alan77916 (啦~好想幸福呀~!)
看板java
標題[問題] static variable
時間Sun Aug 26 23:53:21 2012
最近剛開始學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
1F:推 mars90226:static的變數是跟著class的,所以應該不會被摧毀 08/27 00:09
2F:→ mars90226:因為是跟著class,所以永遠都是同一個 08/27 00:12
3F:推 LaPass:一直都會在,直到該class被unload 08/27 00:44
4F:推 LaPass:建議找說明jvm相關的書來看,他會說jvm怎麼處理記憶體,有 08/27 00:50
5F:推 LaPass:專門的記憶體區塊是專門拿來放class的格式、static之類的 08/27 00:54
6F:→ alan77916:感謝大大們的指導 那我大概了解了 我在去翻相關資料看看 08/27 15:04
7F:→ alan77916:所以JVM會先把class當必要了解的資訊載進來(當new他時?) 08/27 15:10
8F:推 LaPass:嚴格說:是在保證在new之前一定會載入。不過你想當他第一次 08/27 15:23
9F:→ LaPass:new的時候載入也OK,因為通常是這種狀況。除非去使用static 08/27 15:26