Cha*_*ani 6 java performance complexity-theory
我想知道在java中使用instanceof运算符的计算成本是多么昂贵,并想知道是否有更好的替代方案可用
另一种方法是避免instanceof正确使用和设计你的类(在OO意义上).
由于instanceof运算符具有相应的" instanceof "字节代码指令,因此可能不会有更高效的方法; 但这也可能取决于实际JVM的优化方式.
instanceof非常快.然而,这通常是一个经过深思熟虑的设计的症状.
它与(成功)演员表演的表现大致相同,因为它做了很多相同的事情.实际上,该任务大致相当于"虚拟"方法调用.
在理智的实现上:对于类,只需要获取运行时类并查看固定的偏移量来检查超类(只要你没有超过8个类的HotSpot继承链).接口有点棘手,但通常最后两个用例适用于缓存的任何特定运行时类.所以这也很快.