Re: [問題] 關於static method 在class initializa …

看板java作者 (偶爾想擺爛一下)時間16年前 (2010/01/06 00:51), 編輯推噓3(303)
留言6則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《akaing (平心靜氣談問題最難)》之銘言: : 最近在自行研究Java的Initialization : instance varible 和constructor 的情況大致上已經了解了. : 現在是想針對.class檔在runtime時期初次讀入JVM(Class initialization的其中一種), : 進行Loading Linking Initializing的過程中 : 1.static method 會在何時載入Ram,以及是載入在那種儲存裝置 : stack,heap,還是static storage中? : 2.是優於static fields和static initializers的Initializing : 還是早在其它階段就已完成。 第二點是指優於 static fields 的甚麼?(static field initializer?) class initializer 與 static field initializer 是在 Initialization 階段 進行,而且這兩種 initializer 實際上是 static method,所以 static method allocation 一定得在 Class Initialization 之前就進行。 static method allocation 比較合理的時機是介於 Verification 與 Class Initialization 之間,因為至少要驗證過 method bytecode 是合格的。 至於為 static field 與 static method 配置記憶體(與初始化記憶體內容)應該 是沒有一定要哪一個先。如果 method 要經過 JIT 編譯成 native code,或許 static field allocation 會早於 method allocation。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.134.151 ※ 編輯: sbrhsieh 來自: 218.173.134.151 (01/06 01:20)

01/06 05:29, , 1F
抱歉我沒表達好 我的優於純粹說先後而已
01/06 05:29, 1F

01/06 05:31, , 2F
所指的static fields 是括號內的動作沒錯
01/06 05:31, 2F

01/06 05:33, , 3F
那這樣是照讀入code的Texual-order來配置了嗎?
01/06 05:33, 3F

01/06 05:37, , 4F
就Initialization的部份了解了,感謝解惑!
01/06 05:37, 4F

01/06 14:49, , 5F
JVM spec. 中沒有 Textual Order 的概念。
01/06 14:49, 5F

01/06 17:20, , 6F
ok 那這部份個人先不定義了,感謝。
01/06 17:20, 6F
文章代碼(AID): #1BGsu8hv (java)
文章代碼(AID): #1BGsu8hv (java)