Javaには2種類の文字列操作があります。文字列クラスとStringBufferクラス(バッファ文字列処理クラス)です。
2つの違いについて簡単に説明しましょう。
文字列クラスとStringBufferクラスの両方は、文字列操作を実装するための対応するメソッドを提供しますが、2つはわずかに異なります。
(1)文字列クラス
このクラスが文字列を生成すると、そのオブジェクトは不変になります。文字列クラスのコンテンツと長さは固定されています。プログラムが文字列情報を取得する必要がある場合は、システムが提供するさまざまな文字列操作方法を呼び出す必要があります。操作はさまざまなシステムメソッドを介して文字列に適用できますが、これはオブジェクトインスタンス自体を変更するのではなく、新しいインスタンスを生成します。システムは、オブジェクトに含まれる実際の文字数に従って割り当てられた文字列クラスオブジェクトのメモリを割り当てます。
(2)StringBufferクラス
バッファリングを意味するワードバッファーを確認しましたが、このクラスにはバッファリング機能が必要です。このクラスは、可変文字列を処理します。 StringBufferクラスの文字列を変更する場合は、新しい文字列オブジェクトを作成する必要はありませんが、元の文字列を直接操作します。このクラスのさまざまな文字列操作方法は、文字列クラスによって提供されるものとは異なります。システムがStringBufferクラスのメモリを割り当てると、現在の文字が占めるスペースに加えて、追加の16文字バッファーも提供します。各StringBufferオブジェクトには、特定のバッファ容量があります。文字列サイズが容量を超えない場合、新しい容量は割り当てられません。文字列サイズが容量を超えると、容量は自動的に増加します。
ここにいくつかの具体的な例があります
文字列接続
文字列クラスには2つの方法があります
最初のタイプ( "+")
public class str {public static void main(string [] args){string str1 = "特殊効果を追加!";文字列str2 = "duang ~~"; System.out.println(str1+""+str2); }}2番目のタイプ( "concat")
public class str {public static void main(string [] args){string str1 = "特殊効果を追加!";文字列str2 = "duang ~~"; System.out.println(str1.concat(str2)); }}StringBufferクラスの方法
public class str {public static void main(string [] args){//文字列sb stringbuffer sb = new stringbuffer( "add special Effects!"); //追加メソッドを使用して、新しい文字列sb.append( "duang ~~")を追加します。 System.out.println(SB); }}最終的な出力の結果は、特殊効果を追加してください!ドゥアン~~
上記の例から、文字列クラスが拡張された場合、2つのオブジェクトをインスタンスする必要があることを確認することは難しくありません。各オブジェクトは一定量のメモリを占有します。 StringBufferクラスでは、新しいクラスをインスタンス化する必要はありません。拡張メソッドを呼び出すだけです。
また、StringBufferクラスのメモリ容量がスケーラブルであるポイントもあります。具体的な例を示しましょう。
public class str {public static void main(string [] args){// String object sb stringbuffer sb = new StringBuffer(40); System.out.println(sb.capacity()); //出力文字列容量sb.ensurecapacity(100); //容量system.out.println(sb.capacity()); //出力文字容量容量}}容量()メソッドは、メモリ内の文字列に対応できる文字列オブジェクトの数を表します。メモリ容量を拡張する場合は、メソッドensureCapacity()を使用できます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。