Re: [問題] static synchronized

看板java作者 (sbr)時間16年前 (2009/05/20 01:19), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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)

05/20 16:16, , 1F
請問是指編譯後產生的.class檔嗎
05/20 16:16, 1F

05/20 19:02, , 2F
請注意內容提到的class object reference value這幾個字
05/20 19:02, 2F
※ 編輯: sbrhsieh 來自: 218.173.133.141 (05/21 01:42)
文章代碼(AID): #1A4keZId (java)
討論串 (同標題文章)
文章代碼(AID): #1A4keZId (java)