文字列:
1は、それは文字列定数であり、それが作成され、一度に変更することはできません。修正は、Stringオブジェクトの周りされているが、新しいオブジェクトを再作成し、そこに新しい値を保存することです。
図2は、Stringクラスは最終であり、継承することができません。
3、および文字列オブジェクトではなく、基本的なタイプ。
図4に示すように、文字列がメソッドに等しいとhashCode()メソッドをオーバーライドします。
StingBuffer:
1、オブジェクトは、新しいオブジェクトは、元の文字列値を変更していない変数、文字列、文字列を操作することが可能です。
2、効率は遅いが、スレッドの安全性
3、のStringBufferは等しいとhashCode()メソッドをオーバーライドしません。
図4に示すように、文字データが動的にアペンド()メソッドを構成することができます。
StringBuilder:
1、オブジェクトが文字列変数で、StringBufferのように、それは新しいオブジェクトを作成しません、文字列を操作することができます。
2、効率的かつ効率的ではなく、スレッドセーフ。