gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:48:37 24 4
gpt4 key购买 nike

现在我正在编写一个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com