あるタイプのオブジェクトを別のタイプにキャストするときにオーバーヘッドはありますか? それとも、コンパイラがすべてを解決するだけで、実行時のコストはかかりませんか?
これは一般的なことですか、それとも異なる場合がありますか?
たとえば、Object[] の配列があり、各要素が異なる型を持っているとします。しかし、たとえば、要素 0 が Double であり、要素 1 が String であることは常に確実にわかっています。(これが間違った設計であることはわかっていますが、これを行う必要があったと仮定しましょう。)
Java の型情報は実行時に保持されますか? または、コンパイル後にすべてが忘れられ、(Double)elements[0] を実行すると、ポインターをたどって、それらの 8 バイトを double として解釈します。
Java で型がどのように処理されるかについては、よくわかりません。おすすめの本や記事があれば、それもよろしくお願いします。