如何在JAVA中实现instanceof?

jac*_*ope 3 java performance instanceof

现在我正在编写一个ORM框架,非常关心性能.

在本框架中,我必须使用instanceofClass.isAssignableFrom检查类型兼容性.

所以我对instanceof和的表现有点怀疑Class.isAssignableFrom

究竟有多缓慢?

Evg*_*eev 6

instanceof应该更快,它是一个字节码操作

public static void main(String[] args) {
        boolean res1 = args instanceof Object;
Run Code Online (Sandbox Code Playgroud)

字节码

ALOAD 0
INSTANCEOF java/lang/Object
ISTORE 1
Run Code Online (Sandbox Code Playgroud)

相比于

boolean res2 = Object.class.isAssignableFrom(args.getClass());
Run Code Online (Sandbox Code Playgroud)

字节码

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
Run Code Online (Sandbox Code Playgroud)