[問題] 靜態物件什麼時候會被清掉?
最近看到動態加載這一塊的東西
看到一個頗有趣的做法
就是
可以讓程式生成一隻java檔
再呼叫編譯器把他編譯
之後再把這個物件載入
http://jingbo2759.blog.163.com/blog/static/98375315201042011617445/
那
我想反過來問
有辦法把命令JVM把一個靜態物件給unload嗎?
翻到的資料說,這是GC在管的
但GC怎麼判斷一個靜態物件還會不會用到?
我不確定正式名稱是叫做靜態物件還是static field之類的
但我指的是這種
class Ball
{
static ballNO=-1;
{ //靜態建構,JAVA保證在第一次調用Ball之前會執行
ballNO = 0;
}
Ball()
{
ballNO++; //記數Ball被建立的次數
}
}
其中的ballNO會在Ball被調用時建立
每次new Ball就會+1
但我怎確定,在兩次new Ball之間不會被歸零?
(意思兩次使用new Ball間,整個Ball class被unload)
另外想個問的問題是.....
可以做到,在JVM還在運行的狀況下,把一個class給unload,重新載入嗎?
假設我有版本更新,就能在不停掉JVM的狀況下,把某個class給換掉
或是在JVM還在運行之中,偷偷加一些其他東西到某個class中之類的
不好意思,因為看到的書比較少再講這方面的東西,所以跑上來請教
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.16.65
→
11/13 15:44, , 1F
11/13 15:44, 1F
推
11/13 15:45, , 2F
11/13 15:45, 2F
→
11/13 15:46, , 3F
11/13 15:46, 3F
→
11/13 15:57, , 4F
11/13 15:57, 4F
→
11/14 10:25, , 5F
11/14 10:25, 5F
→
11/14 10:27, , 6F
11/14 10:27, 6F
推
11/14 12:43, , 7F
11/14 12:43, 7F
→
11/14 12:46, , 8F
11/14 12:46, 8F
→
11/15 09:35, , 9F
11/15 09:35, 9F
→
11/15 09:37, , 10F
11/15 09:37, 10F
→
11/15 09:39, , 11F
11/15 09:39, 11F
→
11/15 09:40, , 12F
11/15 09:40, 12F
→
11/15 09:43, , 13F
11/15 09:43, 13F