java - JAVA内部是如何实现instanceof的?

标签 java performance instanceof

现在我正在编写一个 ORM 框架并且非常关心性能。

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

所以我对instanceofClass.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/

相关文章:

JavaFX:在 WebView img 标签中未加载本地镜像

java - BitmapFactory:无法解码流: java. io.FileNotFoundException

python - 为什么 contextmanager 很慢

performance - 如何处理对 Lucene 索引的非常频繁的更新

java优化挑剔: is it faster to cast something and let it throw exception than calling instanceof to check before cast?

java - 如何在 ImageView 中显示视频缩略图?

java - 为什么在 jpanel.paintComponent() 中调用 setText() 方法时 JLabel 不刷新?

java - Criteria API - 具有参数表达式的优点

javascript - 确定 JS 对象的原型(prototype)

JavaScript 类 : (instanceof this)