现在我正在编写一个 ORM 框架并且非常关心性能。
在此框架中,我必须使用 instanceof
和 Class.isAssignableFrom
来检查类型兼容性。
所以我对instanceof
和Class.isAssignableFrom
的性能有点怀疑
到底有多慢?
最佳答案
instanceof 应该更快,它是一个字节码操作
public static void main(String[] args) {
boolean res1 = args instanceof Object;
字节码
ALOAD 0
INSTANCEOF java/lang/Object
ISTORE 1
比较
boolean res2 = Object.class.isAssignableFrom(args.getClass());
字节码
LDC Ljava/lang/Object;.class
ALOAD 0
INVOKEVIRTUAL java/lang/Object.getClass()Ljava/lang/Class;
INVOKEVIRTUAL java/lang/Class.isAssignableFrom(Ljava/lang/Class;)Z
ISTORE 2
关于java - JAVA内部是如何实现instanceof的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14190189/