使用instanceof help和java强制转换类型异常是否会影响性能?

使用instanceof help和java强制转换类型异常是否会影响性能?,java,object,collections,map,Java,Object,Collections,Map,我使用遗留库,需要使用cast对象来收集。 为了避免异常,我想使用instanceof。 因此,问题二: 1.如果我使用instanceof-需要使用try。。捕获强制转换异常以避免异常? 2.它会影响性能吗? 谢谢 如果使用instanceOf,则不需要尝试catchClasscastException e。instanceOf保证工作,即使使用空值也是如此 在今天的虚拟机中,铸造并没有显示任何可测量的性能打击。相反,如果你发现做铸造太频繁,那么重新审视你的设计 注意:由于类型擦除,insta

我使用遗留库,需要使用cast对象来收集。 为了避免异常,我想使用instanceof。 因此,问题二: 1.如果我使用instanceof-需要使用try。。捕获强制转换异常以避免异常? 2.它会影响性能吗? 谢谢

如果使用instanceOf,则不需要尝试catchClasscastException e。instanceOf保证工作,即使使用空值也是如此

在今天的虚拟机中,铸造并没有显示任何可测量的性能打击。相反,如果你发现做铸造太频繁,那么重新审视你的设计


注意:由于类型擦除,instanceof不能与泛型一起工作。

instanceof在现代JVM中并没有真正影响性能,任何影响都可以忽略不计


这里有一些数字

有时,在运行时了解对象的类型非常有用,特别是在强制转换中。在Java中,无效的强制转换会导致运行时错误。许多无效的强制转换可以在编译时捕获。但是,涉及类层次结构的强制转换可能会产生只能在运行时检测到的无效强制转换。Java提供了运行时操作符instanceof来回答这个问题。它没有任何例外。 现代JVM/JIC编译器已经消除了大多数传统上缓慢的操作对性能的影响,包括instanceof、异常处理、反射等

请参阅

因此,你可以毫不担心地使用它,但你将无法在收藏中使用它,因为它们在那里不起作用。

瞬发和铸造的性能相当好。我在Java7中发布了一些关于解决问题的不同方法的时间安排: