PHPz2017-04-18 09:31:32
synchronized (lock-object) {
}
括號後面要跟一個物件,這個物件充當鎖的作用。 synchronized("")
,這裡你把一個空字串當成鎖,並因此認為你沒有指定鎖住哪個物件。
而實際上,空字串本身就是一個物件。而且,你有兩個實例,並把空字串餵給它們,這兩個實例實際上持有的是同一個物件。
在Java中,全部都是對象, 空字串也是對象。
常數字串,例如空字串,都放在常數池裡,兩個實例引用的空字串其實就是常數池裡的空字串,是同一個物件。