Java 同步(UserDefine.class)和同步(define1.getClass())之间有什么区别吗?
最近我在学习Java多线程,遇到了一个问题。同步(UserDefine.class)和同步(define1.getClass())之间有什么区别吗Java 同步(UserDefine.class)和同步(define1.getClass())之间有什么区别吗?,java,Java,最近我在学习Java多线程,遇到了一个问题。同步(UserDefine.class)和同步(define1.getClass())之间有什么区别吗 提前感谢:)如果define1存储对具体类型的对象的引用UserDefine,则没有区别。两种表达方式 UserDefine.class 及 将产生相同的类实例。因此,这没有区别 如果define1存储对任何其他类型对象的引用(或null),则会有差异。相应的线程将监视器锁定在不同的对象上,或者将抛出NullPointerException(对于n
提前感谢:)如果
define1
存储对具体类型的对象的引用UserDefine
,则没有区别。两种表达方式
UserDefine.class
及
将产生相同的类
实例。因此,这没有区别
如果
define1
存储对任何其他类型对象的引用(或null
),则会有差异。相应的线程将监视器锁定在不同的对象上,或者将抛出NullPointerException
(对于null
情况)。细微差别:
UserDefine.class
将始终引用UserDefine.class对象
define1.getClass()在您的情况下,code>可能总是返回UserDefine.class,但通常在编程中,如果您或其他人稍后出现,可能会将UserDefine子类化,则在您的代码中,它可能不会返回您期望的结果
UserDefine.class
define1.getClass()