Java getClass() VS instanceof VS ==
来源:互联网 发布:天下足球 知乎 编辑:程序博客网 时间:2024/04/19 18:57
Java getClass()
VS instanceof
VS ==
含义
getClass()
返回调用对象object
的运行时类(runtime class
),一个Class
实例。a instanceof T
返回a
是否是T
类型的实例或者T
类型的子类型的实例a == b
判断a
和b
引用的是否是同一个对象
区分
getClass()
的文档介绍如下:
Returns the runtime class of this Object.
The returned Class object is the object that is locked by static synchronized methods of the represented class.
The returned Class object is the object that is locked by static synchronized methods of the represented class
这句话的意思是在说明一个事实:
T.class = a.getClass()
返回的Class
对象是该对象(Class
对象)表示的类中的静态同步方法锁住的那个对象。
java
中当同步关键字加在静态方法前面,当某个线程进入该方法时,必须是已经获得了该类对象(T.class
)的锁。
下面两个写法效果相同:
- 1
public static synchronized void foo() {}
- 2
public static void foo() { synchronized(T.class) { }}
另外,java
中的同步关键字的加锁粒度一般发生在普通对象和类对象上,封锁范围一般可以是代码块、一个方法、整个类的所有方法等。
instanceof
是一个操作符,返回值是false
或true
。
instanceof
不仅可以判断对象是否是某个类T
或其子类的实例,还可以判断是否是某个接口I
或其子接口I
的实现类的实例。
==
操作符是判断两个引用对应的对象是否是同一个。
equal()
方法是自定义的判断的两个引用对应的对象是否逻辑相等。
阅读全文
0 0
- Java getClass() VS instanceof VS ==
- Java: instanceOf vs getClass
- getClass().getResourceAsStream VS getClass().getClassLoader().getResourceAsStream
- typeof VS instanceof
- instanceof() VS isPrototypeOf() hasOwnProperty() VS propertyIsEnumerable()
- java instanceof和getClass()的区别
- JAVA中instanceof和getClass的应用
- java-----instanceof与getClass的区别
- java == vs equals
- Java A instanceof B vs B.isInstance(A) vs B.class.isAssignableFrom(A.class)
- JavaScript——typeof VS instanceof
- Java重写Equals()该用instanceof还是getClass()?
- instanceof and getClass()
- Ruby vs Java -- "== 与 equal"
- java vs javaw vs javaws
- java vs javaw vs javaws
- Equals vs "=="
- equals VS ==
- 安卓学习常用工具及下载地址
- 152. Maximum Product Subarray
- CS231n 笔记一(lecture 2)(KNN、线性分类)
- top详解
- seo高手推荐的学习seo的最好的网站
- Java getClass() VS instanceof VS ==
- LWC 59:729. My Calendar I
- SynaptiCAD.Product.Suite.v20.11 1CD
- 分布式服务框架(dubbo)
- ubuntu17.10 Server 在 VirtualBox 上搭建
- BWT算法在生物信息学中的应用(二)-算法实现
- 机房准备问题小结
- mysql数据导入hbase
- deepin jdk how to use