gpt4 book ai didi

Java 初学者 : does casting result in lower performance by any mean?

转载 作者:行者123 更新时间:2023-11-29 07:20:58 25 4
gpt4 key购买 nike

当我创建 Animal x=new Dog(); 并且我想使用 Dog 函数时,我必须强制转换吗? ((Dog)x).bark(); 所以假设我会在 for 循环中多次使用它会导致性能降低吗?除了每次都转换之外还有其他方法吗?

最佳答案

像一个 Actor

Dog dog = (Dog) animal;

是所谓的“Check”类型转换。所以在运行时它是一个简单的 if 语句(是动物实现 Dog 的实例),它抛出一个 ClassCastException。因此,如果转换正常,至少它不会提供任何合理的性能开销,但如果转换失败,则会抛出异常,并且异常处理是一种消耗性能的“操作”。

因此,如果您转换某些东西,并且转换不会失败,我相信不存在性能问题。但是,如果您的转换经常失败,那么您应该稍微更改一下算法。

关于Java 初学者 : does casting result in lower performance by any mean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4545870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com