java 板


LINE

※ 引述《gn00618777 (非常念舊)》之銘言: : 類別(class)中可以有static 程式區塊,static 程式區塊在類別第一次被載入後只會 : 被執行一次,此區塊在類別變數初始化之前執行。 : 書上只淺淺的一行帶過... : 所以...類別是會被載入之後再載出,重複載入的意思囉? : 還有這 static block 的使用時機是啥阿? 謝謝。 這邊主要有兩個概念 Classloader和Initializing Fields Classloader java Classloader是Java運行時環境的一部分, 負責動態載入Java類到Java虛擬機的內存空間中。 類通常是按需載入,即第一次使用該類時才載入。 (引自維基百科) 為了空間效能等等,通常是需要時才載入 不必要時也可能載出 所以是會有重複載出載入的情形 static block static block主要是用來當Initializing Field使用 也就是初始化使用static member使用 而使用時機可能是 1.需要載入共用資源 2.下載.讀取一些共用資料 參考資料: http://en.wikipedia.org/wiki/Java_Classloader http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.161.193.19
※ 文章網址: http://webptt.com/m.aspx?n=bbs/java/M.1404582657.A.670.html
1F:→ Deltaguita:請問一下static block是被載入的時候就被執行 07/06 03:08
2F:→ Deltaguita:不被 Instance 跟Destory影響嗎? 07/06 03:09
3F:→ jetswayss:基本上是 不過如果第一次new出instance 07/06 04:16
4F:→ jetswayss:"可能"是他第一次被載入,所以時間可能相近 07/06 04:16
5F:→ jetswayss:Destory後又無參照 也"可能"被GC unload 07/06 04:16
6F:→ jetswayss:之後再使用"可能"又會在載入一次 07/06 04:17
7F:推 gn00618777:請問一下,初始化static member使用,那類別的成員各自 07/06 10:19
8F:→ gn00618777:加上static修飾詞不就好了..? 07/06 10:19
9F:→ jetswayss:某種方面上可以把它當成class的constructor 07/06 15:12
10F:→ NewSpec:八卦一下, 某公司面試Java考題這個考很兇... 07/06 15:47
11F:→ Killercat:其實95%的人只有在JNI會用到這個.... 07/07 02:42
12F:→ Killercat:static block的invoke時間跟Classloader完全相關 07/07 02:42
13F:→ Killercat:最好他們生意做那麼大 每個都馬需要改自己的classloader 07/07 02:43
14F:→ Killercat:基本上大多數只有自己實作DI Framework才會想碰那塊 07/07 02:46
15F:→ qrtt1:也要意識到 web context 也是自己獨立的 classloader 07/07 10:14
16F:→ TonyQ:我改過 class loader XDDD ,不過是為了做 runtime sandbox 07/07 14:24
17F:→ TonyQ:當時的目標是可以線上直接寫 class 還有更新,所以在 07/07 14:25
18F:→ TonyQ:classloader 跟 runtime compile 那邊下了不少苦心。XDDD 07/07 14:25
19F:推 Killercat:可是真正enterprise上需求真的很少見 他們考這不知幹嘛 07/07 14:34
20F:→ lovdkkkk:想搞自己的熱插拔就可能改 (aka 實做自己的) Classloader 07/07 14:35
21F:→ lovdkkkk:不過反正有 load 就會跑到, 應該沒影響? 07/07 14:36
22F:推 Killercat:「熱插」做的到,「熱拔」不行。必須用一些很tricky的方 07/07 15:45
23F:→ Killercat:法(比方說動態指定class name)才能逼classloader 07/07 15:46
24F:→ Killercat:去unload一個class,Native Library也有一樣的問題 07/07 15:46
25F:→ Killercat:這東西要熱插拔搞到最後就是一個半吊子 很討厭的 07/07 15:47
26F:→ Killercat:正常情況下除非ref=0加上強制GC 否則他無法unload 07/07 15:47
27F:推 Killercat:值得一提的是OSGi有重新寫一個Classloader做的到 07/07 15:50
28F:推 lovdkkkk:熱拔...就直接把 classloader 拔掉 (然後全重插) XDD 07/07 15:59
29F:→ Killercat:問題在於他會讓你重新load一個同名但是改過的模組出問題 07/07 16:06
30F:→ Killercat:你沒辦法動態產生.class放進去 :/ 07/07 16:07
31F:→ Killercat:當初在Native Library為這點吃足苦頭 結果.class都是... 07/07 16:07
32F:推 popcorny:這讓我想到我之前分享的東西 http://goo.gl/twDuI7 07/07 16:37
33F:推 Killercat:等等 我看懂了 原來樓上兩樓說的是拔classloader XD 07/07 16:50
34F:→ Killercat:居然還有這招 怎麼那麼靠背啊 XDDDDD 07/07 16:51
35F:→ qrtt1:可以插了又拔,拔了再插。很有趣滴。 07/07 17:34
36F:→ lovdkkkk:是的, 因為不能只換張椅子只好整棟樓重蓋這樣 @@ 07/07 17:44
37F:→ Killercat:真的是學到了 閒聊也能學到這種東西 XD 感謝大家 07/07 18:15







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP