Java StringBuilderの
使い方・文字列の連結
2つ以上の文字列をつなぐことを、
文字列の連結(conacation)といいます。
最も簡単な方法は、
Stringクラスで+演算子を用いる方法です。
1 2 3 4 5 6 7 8 9 |
public class SampleA { public static void main(String[] args) { String str = "Hello " + "World"; System.out.println(str); } } |
1 |
Hello World |
上記のように問題なく処理が動き、
実行結果として出力されていますが、
Stringクラスの文字連結には
問題点があります。
それはStringクラスのインスタンスの
不変性にあります。
インスタンスについての詳細な説明はここから
Stringクラスに限らず
「インスタンス化の後に内容変更一切なし」
のよう設計されたクラスのことを
不変であると言います。
1 2 3 4 5 6 7 8 9 10 |
public class SampleB { public static void main(String[] args) { String str = "Hello "; str = str + "World"; System.out.println(str); } } |
1 |
Hello World |
上記のようにStringインスタンスは
中身を書き換える事ができるように見えます。
しかし実際は下記のようなことが起きています。
Helloという文字列情報を持った
Stiringインスタンスが大きくなり、
“HelloWord”という情報を持つ
ということは決してありません。
演算子にによる(+)連結が行われた場合は、
古いインスタンスは捨てられ
連結後の情報を持つ新しいインスタンが
newにより生成されることになります。
簡潔に説明すると
+演算子で処理した回数の文字連結は、
内部でその回数分のnewを行っています。
その問題を解決するために
StringBuilderを使います。
1 2 3 4 5 6 7 8 9 10 11 12 |
public class SampleC { public static void main(String[] args) { StringBuilder sb = new StringBuilder(); sb.append("Hello "); sb.append("World"); System.out.println(sb.toString()); } } |
1 |
Hello World |
※new String(sb)や
String.valueOf(sb)でもString変換が可能です。
StringBuilderやStringBufferは
可変なクラスとして設計されています。
newを使用することなくappend()メソッドで
文字列を追記していく設計になっているので
高速に処理をすることが可能です。
StringBufferクラスの利用方法はStringBuilderと全く同じになります。
- String: 不変
- StringBuilder:可変
- StringBuffer: 可変
StringBuilderとStringBufferの違いは、
並列処理を利用しているか
利用していないかの場合に使い分けをします。
並列処理とは、複数の処理を
同時に行うためのJavaのしくみです。
- StringBuilder:並列処理 ✕
- StringBuffer: 並列処理 ○
並列処理を利用している場合に、
StringBuilderクラスを利用すると
不具合になる可能性があるので
代わりにStringBufferクラスを使用します。
今の年収に満足していますか?
同じ契約金で業務委託していても
在籍している会社によって給料が違います。
今と同じスキル・業務内容でも
年収が変わるということです。
さらに以下を考慮すると
より年収アップにつながります。
- スキルセットと需要
- 経験と実績
- 業界や地域の市場価値
- 転職時の交渉スキル
転職先の企業の給与体系や
業界の標準的な給与水準を調査し、
給与のみでなく、
福利厚生やキャリア成長の機会、
ワークライフバランスなどの要素も
総合的に考慮することが重要です。
Kindle Unlimitedは、Amazonが提供する
月額定額制の電子書籍サービスを活用します。
また、Kindle Unlimitedには、
体験版が提供されています。
体験版では、一定期間(通常は30日間)に限り、
Kindle Unlimitedのサービスを
無料で利用することができます。
1.豊富な書籍のラインナップ
Kindle Unlimitedには、幅広いジャンルの書籍が
数十万冊以上含まれています。
小説、ビジネス書、自己啓発書、
学術書、漫画など、
様々なテーマや興味に合わせて
多彩な選択肢があります。
2.サービスの内容を体験
体験版では、Kindle Unlimitedの全ての機能を使いながら、
豊富な書籍のラインナップや
読書体験を体験することができます。
自身の読書の好みや
利用頻度に合うかどうかを確認できます。
3.解約が可能
体験版期間中にKindle Unlimitedのサービスに
満足しなかった場合、
期限内に解約することができます。
その場合、追加料金はかかりません。
Kindle Unlimitedでは
さまざまなジャンルの書籍が提供されています。
ITエンジニアとしてスキルを向上させたり
新しい技術を学んだりする際に、
Kindle Unlimitedは
便利な資源となるのでおすすめです。
この記事へのコメントはありません。