黑马程序员技术交流社区
标题:
同步代码块相关
[打印本页]
作者:
NNERO
时间:
2014-4-15 17:41
标题:
同步代码块相关
本帖最后由 NNERO 于 2014-4-15 19:49 编辑
class Base05
{
private Base05(){}
private static Base05 s = null;
public static Base05 getInstance()
{
if(s == null)
{
synchronized(Base05.class)//同步代码块:锁:Base05.class ,这个锁是什么意思。
{
if(s == null)
s = new Base05();
}
}
return s;
}
}
复制代码
这里同步代码块中的Base05.class是锁,但是锁应该是一个对象,这个Base05.class难道是对象?
这里不清楚,求解答!
作者:
呆呆沙师妹
时间:
2014-4-15 17:54
是的,Base05.class是Class类的对象。
作者:
杨殿生
时间:
2014-4-15 18:04
Base05.class是一个Class类的对象
作者:
刘岳林
时间:
2014-4-15 19:31
同步方法中.
synchronized做为一个修饰符去修饰方法。
1.非static方法。 锁对象就是 this
2.static方法 锁对象就是 类名.class.
你这道题方法是静态的,就要用类名.class,
类名.class. 叫做这个类的对象
作者:
show_play
时间:
2014-4-15 19:41
//这里同步代码块中的Base05.class是锁,但是锁应该是一个对象,这个Base05.class难道是对象?
你定义了static方法。static是静态,它是随着类的加载而加载的,就必须使用Class对象来同步静态方法。
作者:
NNERO
时间:
2014-4-15 19:49
了解了!
作者:
\(^o^)/
时间:
2014-4-15 21:01
#在这里快速回复#类进内存要封装成一个class文件对象,就是字节码文件对象,Base05一进内存就生成了一个Base05.class的字节码文件对象。所以Base05.class也是一个对象。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2