我正在开发一个应用程序,其中一种设计方法涉及到非常频繁地使用instanceof
运算符.虽然我知道面向对象设计通常会尽量避免使用instanceof
,但那是另一回事,这个问题纯粹与性能有关.我想知道这是否会影响性能?和==
一样快吗?
例如,我有一个基类,它有10个子类.在接受基类的单个函数中,我判断类是否是子类的实例,并执行一些 routine .
我想解决这个问题的另一种方法是使用"type id"整数原语,并使用位掩码表示子类的类别,然后将子类"type id"与表示类别的常量掩码进行位掩码比较.
JVM是否以某种方式对instanceof
进行了优化,以使其速度更快?我想坚持使用Java,但应用程序的性能至关重要.如果以前走过这条路的人能提供一些建议,那就太酷了.我是不是太吹毛求疵了,还是把注意力放在了不该优化的事情上?