我正在阅读 oracle 文档。
“当线程调用同步方法时,它会自动获取该方法对象的内在锁,并在方法返回时释放它。”
在这里他们提到了“方法的”对象。
Method的对象到底是什么?
现在他们在这里提到了与类相关的对象
'线程获取与类关联的类对象的内在锁。
那么与类关联的类对象是什么?
它们之间有什么区别?
我认为方法的对象是非静态的方法,也就是说,特定于实例的方法。
而类方法是类中声明的静态方法。取决于可以像全局函数一样的语言
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();
对象是可以操作或访问的实例化实体。
方法的对象,是该方法当前用于的对象。
类对象是类层次结构的根。每个类都有 Object 作为超类。(不要被这个混淆)所有对象,包括数组,都实现了这个类的方法。
类只是用户自定义的数据类型,代表一些方法和变量。
Object 是该类的实例变量,就像蓝图一样。
还有类方法和对象方法。
您将对象方法发送到该类的特定实例,并将 Class 方法发送到该类。
例如,您有 Class Car。它只是描述了汽车是如何构造的以及它可以做什么。然后,它可能有方法Create a new car
。因此,例如梅赛德斯和奥迪,您将拥有很少的对象。并且这个对象可以响应方法驱动和停止。是否有意义?