無視してもらって構いません)。メモリ領域のレイアウトを示すための構造体が定義されています。いうところまで紹介しましたが、ちょっと不思議なことがあります。1つのStringオブジェクトが持つ文字列の長さは(メモリのある限り)いくらでも大きくすることが可能です。収まるわけがないのです。文字列の長さを格納しています*2。大きさに気にすることなく大きくすることが可能です。収まらない場合は同じようなテクニックを使います。年から、ほとんど変っていません。実行することになります。用いて確保する量を変えたりします。よる確保・解放を頻繁に行っている、という点が挙げられると思います。細かい話はおいといて、だいたいこれくらいのデメリットがあります。用いないで実装されます。言えるかも知れません。使うとまずそう、ということがわかりました。(theap)は、これを解決するために導入されました。メモリ確保するようにします。解放するときは、何もしません。呼んでいたところは、何もしないように変えるだけです。する必要がないんです。なんか、速そうじゃないですか。専門用語っぽくて格好いいですね)。良さそうですね!うまい話には裏がつきもので、今回の裏は「生き残るオブジェクトが余計な仕事をしなければならない」です。終了時に全部消されてしまうと困ります。使っていた場合、別の領域を割り当てて、そこにデータをコピーすることで対処します。待避(evacuate)と言います。heap」と名付けました。表にまとめるとこんな感じです。ほうが、確保と解放が速いです。起こる度に待避が必要です。利点と欠点があるんですが、さて、どっちが得でしょうか。そこで、たびたび世代別GCの解説で紹介される世代別仮説というものを引用します。若いオブジェクトは死にやすく、古いオブジェクトは死ににくい、のではないかという経験則です。プログラムを見ていると、若いオブジェクトをどんどん作って捨てていく、というプログラムがそこそこありそうですので、この仮説は多分正しいことが多いんじゃないでしょうか。