Javaちょこっとリファレンス ブログ

Java開発時にぜひご利用ください。

Java基本

[Java] StringBuilderのバッファ容量を確認する(.capacity)

投稿日:

StringBuilderのバッファ容量を確認するには .capacity()メソッドを使用します。

サンプル

例)StringBuilderのバッファ容量を表示する

(結果)
16 16 34

文字列を追加すると capacityの容量が自動で拡張するのが分かります。

備考

  • デフォルトでは16です。
  • 文字列を追加すると自動的に容量も追加されます。
  • StringBufferクラスも同様にバッファ容量を確認できます。

スポンサーリンク

スポンサーリンク

-Java基本
-

執筆者:


  1. ゆーか より:

    質問なのですが、8行目で表示したバッファが16なのはなぜですか?
    文字列が追加されると容量も追加されるのであれば、7行目で追加した文字列分のバッファが追加される気がするのですが……

    • azuki より:

      コメントが遅くなりすみません

      4行目ではバッファ数を指定せずにStringBuilderをnewしているため、
      バッファ数は16です。
      (空の器が16個用意されるイメージです)

      7行目では9文字追加していますが、
      空の器が16個あり、全てそこに入りきるので器の数は16のままです。
      (16個の器の内、9個が埋まっていて7個が空いているイメージです)

      10行目ではさらに9文字追加しています
      ここで初めて器の数を超えることになります。
      StringBuilderでは、現在の器を超えた場合は
      必要な容量+16のバッファを用意しようとするので、
      現在必要な数(9+9) + バッファ(16)→34となり
      capacity数は34になります。

      なので、文字列を追加して現在の容量からあふれる場合のみ
      バッファが追加される感じになります

ゆーか へ返信する コメントをキャンセル

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

[Java] 独自例外を定義・使用する

Javaで独自例外を定義して使用するサンプルです。 サンプルソース 例)独自例外「MyExcepti ...

[Java] Map型オブジェクトから指定したキーが存在するかどうか判定する(.containsKey)

Map型オブジェクトから指定したキーが存在するかどうか判定するには、.containsKey()を使 ...

[Java] コレクション内の要素が空かどうか判定する(.isEmpty)

コレクション内の要素が空かどうか判定するには、.isEmptyを使用します。 サンプルソース 例)A ...

[Java] 1970年1月1日からのミリ秒を取得する(.getTime)

1970年1月1日からのミリ秒を取得するには、.getTime()を使用します。 構文 (java. ...

[Java] 立方根を求める(Math.cbrt)

立法根を求めるには、Math.cbrtを使用します。 構文 (java.lang.Math) pub ...