・StirngBuilderを使う意味(意義)と使い方
Stringの連結だけなら+演算子でも可能です。しかし、+演算子の結果が返るたびに新たなStringを生成してしまい、場合によっては無駄の多いプログラムになります。例えば、
java
1String s = "a" + "b" + "c" + "d" + "e";
と書くと、
- "a" + "b"で"ab"というStringを生成
- "ab" + "c"で"abc"というStringを生成
…以下同様
となり、リテラル以外で新たなStringが計4回生成されます。一方、
java
1String s = new StringBuilder("a").append("b").append("c").append("d").append("e")
2 .toString()
この結果は"abcde"となりますが、Stringオブジェクトの生成を行っているのは最後のtoString()
だけで、他は「文字の書き足し」を行っているだけです。Stringの生成には意外にリソースを消費するので、これを使うことによってそれを節約できるのです。
・4行目に出てくるcapacity()はメソッドかコンストラクタか
メソッドです。このStringBuilderの容量を返します。
前述したとおり、append
メソッドは渡された情報(Stringに限らず、あらゆる型に対応し、その情報を文字列化したものを使う)を文字として書き足します。その機能のためにStringBuilderは文字列情報を「変更可能な文字の配列」として持っており、ある程度の空きスペースを持っています。このメソッドはその文字の入れ物としている配列の長さを返します。
引数に渡されたものがコンストラクタかメソッドかを見分ける方法を教えてください
コンストラクタであればnew クラス名(引数)
という書き方になります。
また、コンストラクタ/メソッド?が事前に定義がないのになぜ使うことができるのか
Javaの標準ライブラリに入っており、Javaをインストールすれば誰でも使用可能だからです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/06 15:14