看板 java 關於我們 聯絡資訊
※ 引述《a613204 (胖胖)》之銘言: : 想請問一下 static synchronized method 鎖住的是哪一個物件呢?? : 少了static 的話 好像是用物件本身去鎖住函數 : 那加上了static 可以在不產生物件的情況下呼叫,那麼這個時候是用哪個物件去鎖住呢?? : 請各位幫忙解答~~謝謝 JVM/ClassLoader 在 load and resolve class 之後,會建構一個 class object( java.lang.Class subclass instance)。你可以看成這個 class object 在 runtime 代表一個 Java class(class object 提供 reflection 機制讓程式在 runtime 取得 Java class 的資訊,而這些資訊(java.lang.reflect.Field/java.lang.reflect .Method 也提供對應的操作)。 Class Literal(ClassName.class) 的值就是 class object reference value。 class Foo { static synchronized void bar() { ... } } bar 在執行過程中握有(鎖)的是 Foo.class 這個 object's monitor。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.137.181 ※ 編輯: sbrhsieh 來自: 218.173.137.181 (05/20 01:21)
a613204:請問是指編譯後產生的.class檔嗎 05/20 16:16
weiyucsie:請注意內容提到的class object reference value這幾個字 05/20 19:02
※ 編輯: sbrhsieh 來自: 218.173.133.141 (05/21 01:42)