Re: [問題] static variable
※ 引述《alan77916 (啦~好想幸福呀~!)》之銘言:
: 最近剛開始學JAVA
: 所以遇到了點問題想請教各位大大
: 因為我從書上看到他寫說
: static variable在該class第一次被初始化後會被建立起來
: 爾後該class的object操作到的都會是同一個static variable
: 但書上卻沒有提到說 若所有的object被摧毀時
: 則此static variable會如何?
: 那如果此時再新增一個此class的object的話
: 則static variable會被renew還是會是同一個呢?
: 另外想詢問一下 此變數在記憶體中到底是如何操作的
: 因為為何可以所有object都refer到同一個變數
: 感謝大大的回答了<(_ _)>
: 如果有表達不清 或是搞錯的地方 還煩請賜教
放在Class<T> object裡面,所以即使沒有T object,static field還是會存在,
Class object則是在語言標準裡面規定的時間點會被ClassLoader建立。
另外要讓對應的Class<T> object被回收只能靠回收建立它的ClassLoader object,
不過class loader在標準只有說可以被回收,沒有說一定要回收。
簡單示意圖:
load
ClassLoader <------ byte[] binary definition of class T
|
|create when needed
| access
--> Class<T> <-------- T.field/T.method()
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.72.92.133
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):