方法a为同步方法,方法b里面的是同步块,同步方法使用的锁是固有对象this,同步块使用的锁可以是任意对象,但是方法b里面的同步块使用的锁是对象this,所以方法a和方法b锁住的是同一个对象。方法 c为静态同步方法,使用的锁是该类的字节码文件,也就是Test.class。方法d里面的也是同步块,只不过使用的锁是Test.class,所以方法c和方法d锁住的是同一个对象。
关于下面一段代码,以下说法正确的是: () public class Test { private synchronized void a() { } private void b() { synchronized (this) { } } private synchronized static void c() { } private void d() { synchronized (Test.class) { } } }
https://gw-c.nowcoder.com/api/sparta/jump/link?link=https%3A%2F%2Fwww.nowcoder.com%2FquestionTerminal%2F718f28312bf34cbdb00bc80ee42b83e4
全部评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
基恩士成长空间 426人发布
查看12道真题和解析