- PR -

文字列の連結について

1
投稿者投稿内容
とら
会議室デビュー日: 2005/09/13
投稿数: 7
投稿日時: 2005-10-20 10:04
基本的なことだと思うのですが教えてください。
文字列を連結するときに、

String a = "Java";
String b = "が";
String c = "好き。";
String d;
d = a;
d += b;
d += c;
とするとよりも、

String a = "Java";
String b = "が";
String c = "好き。";
StringBuffer d = new StringBuffer();
d.append(a);
d.append(b);
d.append(c);
とした方がCPUの使用効率が良いので、文字列連結をするには一般的なようなのですが、

String d = a + b + c;
とした場合も += で連結するのと内部的な処理は変わらないのでしょうか?
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2005-10-20 10:28
内部的には、下記の様になるはずです。
パフォーマンスは+=に比べ相当向上します。

String d = new StringBuffer().append(a).append(b).append(c)

mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2005-10-20 11:23
String d = new StringBuffer(a).append(b).append(c).toString();
かなと。細かい…。
yamasa
ベテラン
会議室デビュー日: 2003/02/15
投稿数: 80
投稿日時: 2005-10-20 11:47
J2SE 5.0でコンパイルすると、自動的に
String d = new StringBuilder().append(a).append(b).append(c).toString();
に変わるので、StringBufferを明示的に使っているものよりも
さらにパフォーマンスが上がるかもしれませんね。
とら
会議室デビュー日: 2005/09/13
投稿数: 7
投稿日時: 2005-10-20 14:50
まだJava初心者なので非常に良い勉強になりました。
みなさんありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)