【发布时间】:2016-04-06 05:16:58
【问题描述】:
抛开设计问题不谈,什么在现代 JVM 上执行得更快?
foo instanceof Bar
或
Bar.class.isInstance(foo)
为什么?
【问题讨论】:
-
#1。它内置在语言中。你不会比这更好。
-
速度快一点都不重要。
-
@LouisWasserman 我不是想做得更好,我只是好奇哪个操作更快。
-
几乎不可能不通过测量来判断。
Class.isInstanceOf()是 OpenJDK 中的一种内在方法(可能在每个现代 VM 中),这意味着它尽可能快。另一方面,instanceof有自己的字节码操作,因此它可能会更快。 Hotspot 如何优化对每个调用的调用是另一回事。
标签: java jvm instanceof