作者Chikei ( )
看板java
标题Re: [问题] static variable
时间Mon Aug 27 17:53:29 2012
※ 引述《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