読者です 読者をやめる 読者になる 読者になる

イミディエートオブジェクト

私は一年以上前に自動boxingの導入に反対する意見をJava Developer Journalで発表しました。 そこで述べたとおり、自動boxingの問題はプリミティブ値をラップしたり取り出したりする際に、大量のゴミが発生することです。 あまり笑えない話ですが、実は自動boxingを不要なものにし、かつ何のデメリットもない完璧な解決策が存在するのです。 残念ながら今までその解は見過ごされてきたか、あるいは無視されてきました。 私に言わせれば無視したのでしょう。自動boxingを提唱した人々は、SmallTalkにはすでにプリミティブの扱いに関する完璧な解決方法があることを知らないはずがないからです。 SmallTalkにはイミディエートオブジェクトと呼ばれる構造体があります。 イミディエートオブジェクトと通常のオブジェクトの違いは、値がヒープではなくてオブジェクト指向ポインタ(OOP)に格納されている点にあります。 大事なのは、これらすべてがVMによって処理されるので、プログラマはその違いを意識することは一切なく、イミディエートオブジェクトと通常のオブジェクトは全く同じに見えるということです。

イミディエートオブジェクト、即値オブジェクト?イイナァ