gpt4 book ai didi

java - "pre-casting"与每次类型转换的效率

转载 作者:行者123 更新时间:2023-12-01 23:03:09 24 4
gpt4 key购买 nike

有时需要根据instanceof进行分支,然后对具体类型进行一些操作。

if (obj instanceof IonObject) { 
Ion.assertRegistered((IonObject) obj);

writeMark(((IonObject) obj).getIonMark());

((IonObject) obj).save(this);
return;
}

在这种情况下,创建所需类型的局部变量是否会使代码更高效,或者仅仅是视觉上的改进?

if (obj instanceof IonObject) {
// cache the casted value
IonObject iobj = (IonObject) obj;

Ion.assertRegistered(iobj);

writeMark(iobj.getIonMark());

iobj.save(this);
return;
}

最佳答案

类型转换的成本很小,因为它必须检查类型是否合适(否则它实际上不会改变任何东西)

但是,在这种情况下,您可以假设 JIT 会优化此检查,以便在您以任何一种方式编写代码后完成该检查。

如果代码运行得不够好,无法进行 JIT 处理(这很可能),代码会稍微慢一些,但这并不重要,因为它没有被足够调用。即,经过 JIT 处理和未经 JIT 处理之间的性能差异要大得多

关于java - "pre-casting"与每次类型转换的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23205061/

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