ringa_lee
synchronized (lock-object) { }
括号后面要跟一个对象,这个对象充当锁的作用。synchronized(""),这里你把一个空字符串当成锁,并因此认为你没有指定锁住哪个对象。而实际上,空字符串本身就是一个对象。并且,你有两个实例,并把空字符串喂给它们,这两个实例实际上持有的是同一个对象。
synchronized("")
在Java中,全部都是对象, 空字符串也是对象。
常量字符串,比如空字符串,都放在常量池里,两个实例引用的空字符串实际上就是常量池里的空字符串,是同一个对象。
括号后面要跟一个对象,这个对象充当锁的作用。
synchronized("")
,这里你把一个空字符串当成锁,并因此认为你没有指定锁住哪个对象。而实际上,空字符串本身就是一个对象。并且,你有两个实例,并把空字符串喂给它们,这两个实例实际上持有的是同一个对象。
在Java中,全部都是对象, 空字符串也是对象。
常量字符串,比如空字符串,都放在常量池里,两个实例引用的空字符串实际上就是常量池里的空字符串,是同一个对象。