Now I\'m writing an ORM Framework and very care about performance.
In this Framework , I have to use instanceof and Class.isAssignableFrom
instanceof is supposed to be faster, it's one bytecode operation
public static void main(String[] args) {
boolean res1 = args instanceof Object;
bytecode
ALOAD 0
INSTANCEOF java/lang/Object
ISTORE 1
compare to
boolean res2 = Object.class.isAssignableFrom(args.getClass());
bytecode
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