【发布时间】:2010-01-31 07:10:42
【问题描述】:
当我们将一种类型的对象转换为另一种类型时是否有任何开销?还是编译器只是解决所有问题而在运行时没有成本?
这是一般情况,还是有不同的情况?
例如,假设我们有一个 Object[] 数组,其中每个元素可能有不同的类型。但是我们总是可以肯定地知道,比如说,元素 0 是一个 Double,元素 1 是一个字符串。 (我知道这是一个错误的设计,但我们假设我必须这样做。)
Java 的类型信息在运行时是否仍然保留?或者编译后一切都忘记了,如果我们做 (Double)elements[0],我们只会跟随指针并将这 8 个字节解释为双精度,不管那是什么?
我非常不清楚 Java 中的类型是如何完成的。如果您对书籍或文章有任何建议,那么也谢谢您。
【问题讨论】:
-
instanceof 和 cast 的性能相当不错。我在 Java7 中发布了一些关于解决问题的不同方法的时间:stackoverflow.com/questions/16320014/…
-
这个其他问题有很好的答案stackoverflow.com/questions/16741323/…
标签: java performance casting static-typing