A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 屈_zi 中级黑马   /  2014-5-13 14:39  /  813 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

static修饰的方法中不能有this关键字,也就是不能包含实例对象;
当synchronized修饰方法时,实际上包含了一把this的锁,那么下面的代码为什么有成立呢?static方法中不是不能使用this吗?
  1. synchronized static void Method(){
  2.        ……
  3. }
复制代码

3 个回复

倒序浏览
synchronized修饰静态方法时,使用的锁是该类的字节码文件(类名.class),而不再是this。
回复 使用道具 举报
谢振宣 发表于 2014-5-13 15:15
synchronized修饰静态方法时,使用的锁是该类的字节码文件(类名.class),而不再是this。 ...

是这个类,还是这个类的字节码文件?
回复 使用道具 举报
屈_zi 发表于 2014-5-13 15:27
是这个类,还是这个类的字节码文件?

是字节码文件,后缀是.class的文件。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马