instanceof

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了instanceof相关的知识,希望对你有一定的参考价值。

class A
A a=null;
a instanceof A;
为什么返回false?

你的a定义的是A,但是因为没有实例化,只是进行了初始化而已,因此,进行instanceof判断的时候为false。

instanceof一般是用来判断一个不知具体属于哪个类来实例化的时候进行判断的,没有实例化,是起不到任何作用的。JVM执行这个语句的时候,根本不知道你的声明,他只根据实例本身的特性进行判断,而你这儿位null,因此,就不可能和任何类型匹配上。
参考技术A 因为那个a=null,A是一个对象
而null可以表示任何引用类型,但是instanceof操作符被定义为在其左操作数为null时返回false。
参考技术B A a =null;在编译的时候根本就没有实例化 也就是 java虚拟机忽略了a 根本没分配地址给a 只有 当 a=new A();时 才能得到一个实例 所以 你这种写法返回值是 false

以上是关于instanceof的主要内容,如果未能解决你的问题,请参考以下文章

小知识(h5 js )

Java中关键字总结汇总

教妹学Java:判断对象的类型,instanceof关键字

instanceof,Object.getPrototypeOf(),Object.create(),Object.setPrototypeOf(),Object.prototype.isProtot

js万能类型检测Object.prototype.toString.call——定制Object.prototype.toString.call的检测结果