[問題] static variable

看板java作者 (啦~好想幸福呀~!)時間13年前 (2012/08/26 23:53), 編輯推噓5(504)
留言9則, 3人參與, 最新討論串1/2 (看更多)
最近剛開始學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

08/27 00:09, , 1F
static的變數是跟著class的,所以應該不會被摧毀
08/27 00:09, 1F

08/27 00:12, , 2F
因為是跟著class,所以永遠都是同一個
08/27 00:12, 2F

08/27 00:44, , 3F
一直都會在,直到該class被unload
08/27 00:44, 3F

08/27 00:50, , 4F
建議找說明jvm相關的書來看,他會說jvm怎麼處理記憶體,有
08/27 00:50, 4F

08/27 00:54, , 5F
專門的記憶體區塊是專門拿來放class的格式、static之類的
08/27 00:54, 5F

08/27 15:04, , 6F
感謝大大們的指導 那我大概了解了 我在去翻相關資料看看
08/27 15:04, 6F

08/27 15:10, , 7F
所以JVM會先把class當必要了解的資訊載進來(當new他時?)
08/27 15:10, 7F

08/27 15:23, , 8F
嚴格說:是在保證在new之前一定會載入。不過你想當他第一次
08/27 15:23, 8F

08/27 15:26, , 9F
new的時候載入也OK,因為通常是這種狀況。除非去使用static
08/27 15:26, 9F
文章代碼(AID): #1GEaPsys (java)
討論串 (同標題文章)
文章代碼(AID): #1GEaPsys (java)