Java getClass() VS instanceof VS ==

含义

  • getClass() 返回调用对象object运行时类(runtime class),一个Class实例。
  • a instanceof T 返回a是否是T类型的实例或者T类型的子类型的实例
  • a == b 判断ab引用的是否是同一个对象

区分

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是一个操作符,返回值是falsetrue

instanceof不仅可以判断对象是否是某个类T或其子类的实例,还可以判断是否是某个接口I或其子接口I的实现类的实例。


==操作符是判断两个引用对应的对象是否是同一个。

equal()方法是自定义的判断的两个引用对应的对象是否逻辑相等。

转载于:https://www.cnblogs.com/Spground/p/8536147.html

Java getClass() VS instanceof VS ==相关推荐

  1. java equals getclass_Java equals()方法 – 子类中equals的语义如何确定getClass和instanceof的使用...

    我是Java编程的初学者.目前我在this页面上阅读有关继承和等于方法的内容. 直到这一点,我理解这些解释: Compare the classes of this and otherObject. ...

  2. Java中的instanceof关键字

    Java中的instanceof关键字 instanceof是Java的一个二元操作符,和==,>,<是同一类东东.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边 ...

  3. java中的instanceof的用法

    java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例.  用法: re ...

  4. 在Java里面使用instanceof的性能影响

    问题:在Java里面使用instanceof的性能影响 我正在写一个应用程序,其中一种设计方案包含了instanceof操作的大量使用.虽然我知道面向对象设计通常试图避免使用instanceof,但那 ...

  5. java 中的instanceof

    java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: res ...

  6. Java 面向对象:instanceof和类型转换的理解

    Java 面向对象:instanceof和类型转换的理解 一.instanceof 1.定义: instanceof A 判断一个引用所指向的对象,是否是A类型,或者A的子类 instanceof 的 ...

  7. Java中的Instanceof

    java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例.  用法:res ...

  8. 在Java中使用instanceof的性能影响

    本文翻译自:The performance impact of using instanceof in Java I am working on an application and one desi ...

  9. Java中isAssignableFrom,instanceof

    2019独角兽企业重金招聘Python工程师标准>>> isAssignableFrom 示例:Class1.isAssignableFrom(Class2) 解释:① 判断Clas ...

最新文章

  1. 对python3中pathlib库的Path类的使用详解
  2. VTK一个面向对象的可视化类库
  3. java.lang.unsatisfiedlinkerror:_java.lang.UnsatisfiedLinkError: 的问题
  4. 我的学习之路_第二章_接口/多态
  5. git 大文件报错Out of memory, malloc failed、 The remote end hung up unexpectedly
  6. Linux netfilter源码分析(6)
  7. Linux core文件生成及设置 查看core文件由哪个程序生成的
  8. C++ 解决大数运算(大数加法,大数幂运算,大数求余)
  9. 运动型蓝牙耳机什么牌子好、最适合运动的耳机
  10. 得洲奥斯汀研究生计算机专业排名,德克萨斯大学奥斯汀分校有计算机工程专业排名...
  11. iPhone指环贴:你手机的防盗专家
  12. 遍历读取文件夹下的所有文件
  13. 通过 Land of Lisp 中的超简短字符游戏例程学习 loop 和 format
  14. 聚合支付码 一码支付的大时代到来
  15. 邯郸学院计算机专业就业怎么样,邯郸学院好就业吗?附邯郸学院就业率最高的专业名单...
  16. C# winform 关于treeView控件的实战
  17. rtmp直播推流 app-livestream v0.0.1.002 发布
  18. 一张图告诉你,如何攻击Java Web应用
  19. R ggplot图例的调整
  20. Jenkins+Git+python+Pgyer Android打包发布实践

热门文章

  1. DrawerLayout侧滑详解
  2. POI操作Excel常用方法总结 .
  3. 个人重构之一般用户实现
  4. 转:python模块学习 ---- smtplib 邮件发送
  5. AgileEAS.NET平台开发实例-药店系统-数据库还原
  6. 微信小程序-设置启动页面
  7. 移动端开发, 常用CSS单位
  8. algid parse error, not a sequence错误
  9. svn 主干和分支项目代码更新与同步
  10. java多线程 ThreadPoolExecutor 策略的坑