我正在阅读oracle docs。
'当线程调用synchronized方法时,它会自动获取该方法对象的内部锁,并在方法返回时释放它。'
这里他们提到了“方法”的对象。
Method的对象究竟是什么?
现在他们提到与clas相关的对象
'线程获取与类关联的Class对象的内部锁。'
那么什么是与类关联的Class对象?
他们之间有什么区别?
答案 0 :(得分:1)
我认为方法的对象是非静态的方法,也就是说,特定于实例的方法。
虽然类方法是在类中声明的静态方法。取决于可以像全局函数的语言
MyClass myInstance = new MyClass();
// Method's object:
// Specific to the instance and won't be called by separate threads at he same time for myInstance, but can be called on another instance of MyClass
myInstance.method();
// Class method:
// Is at the class level, won't be called by separate threads at the same time at all.
MyClass.myStaticMethod();
答案 1 :(得分:0)
Class只是用户的自定义数据类型,表示一些方法和变量。
Object是该类的实例变量,就像蓝图一样。
还有Class方法和Object方法。
您将对象方法发送到该类的特定实例,并将Class方法发送到该类。
例如,您有Class Car。它只描述了汽车的构造方式以及它可以做什么。然后,它可能有方法Create a new car
。因此,你所拥有的物品比梅赛德斯和奥迪少。而且这个对象可以响应驱动和停止的方法。它有意义吗?
答案 2 :(得分:0)
对象是可以操作或访问的实例化实体。
答案 3 :(得分:0)
方法的对象,是当前正在使用该方法的对象。
Class Object是类层次结构的根。 每个类都有Object作为超类。(不要对此感到困惑) 所有对象(包括数组)都实现此类的方法。