String

String.java を見てみる。String は value(char配列), offset(valueの開始ポイントでint), count(文字数でint)を保持する。これらは final なので変更できない。基本的に、new したときにoffsetは0でvalueのchar配列に突っ込む。興味深いのは、substringしたときは、効率をあげるため、元のStringのvalueを利用して、offset で調整する(ということは、でっかい文字列をsubstringして、そのStringをセッションに突っ込んでおくと、でっかい文字列が保持されるのだろうか・・・)。この処理は、substring内でプライベートなコンストラクタを呼んでやっている(他にも呼ぶ場合があるのかもしれないけど、そこまで見てない)。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です