最佳答案
我正在开发一个应用程序,其中一个设计方法涉及到大量使用instanceof
操作符。虽然我知道OO设计通常会尽量避免使用instanceof
,但那是另一回事了,这个问题纯粹与性能有关。我想知道是否对性能有影响?Is和==
一样快?
例如,我有一个有10个子类的基类。在接受基类的单个函数中,我检查类是否是子类的实例并执行一些例程。
我想到的另一种解决方法是使用“type id”整数原语,并使用位掩码来表示子类的类别,然后对子类“type id”与表示类别的常量掩码进行位掩码比较。
instanceof
是否被JVM以某种方式优化为比这更快?我想坚持使用Java,但应用程序的性能至关重要。如果有人曾经在这条路上走过,可以提供一些建议,那就太棒了。我是不是太挑剔了,或者专注在错误的地方去优化?