JavaとAction ScriptにおけるString型の違い

昨日、「Flex入門」という社内勉強会の資料を公開
したことろ、いろいろとフィードバックを頂きました。
> フィードバック有難うございます。

 Flex入門
 http://d.hatena.ne.jp/dewa/20080124#1201162231


スライドの15ページ目に
JavaではString型はオブジェクト型なので挙動が異なる。」
という箇所に id:cero-t さんから
『Stringの挙動、Javaと変わらなくないですか?』という
ツッコミが入る。


コードを書いて確認してみると、確かに挙動は変らない。
なんでだろう?


JavaのString型はクラス(オブジェクト)、
Action ScriptのString型はプリミティブ型。


この違いのため、JavaとAction Scriptで
代入に関する同様の操作をしたところ、
結果が異なることを予想していました。


しかし、実際には挙動というか同じ結果が
得られたので、不思議に思って少し調べてみました。
それを整理したのが下図です。



内部的なメカニズムが異なるにも関わらず、
挙動が同じように見える謎が解けて、
スッキリしました。