Stringについてconcat()メソッドとStringBuffer.append()メソッドの学習:メソッドはどのように文字をソース文字列に追加するか

3856 ワード

問題の分析:
まず、2つのコードの実行結果を見てみましょう.2つのコードはそれぞれ次のとおりです.
第1セグメントコード、Stringについて.concat()メソッドのテスト:
 1     public static void main(String[] args)

 2     {

 3         //String stringA = "hello";

 4         String stringA = new String("hello");

 5         testConcat test = new testConcat();

 6         

 7         test.change(stringA);

 8         

 9         System.out.println(stringA);

10     }

11     public void change(String stringA)

12     {

13         stringA = stringA.concat("world");

14     }

2番目のセグメントコード、StringBuffer.append()メソッドのテスト:
 1     public static void main(String[] args)

 2     {

 3         StringBuffer stringBufferA = new StringBuffer("hello");

 4         testAppend test = new testAppend();

 5         

 6         test.change(stringBufferA);

 7         

 8         System.out.println(stringBufferA);

 9     }

10     public void change(StringBuffer stringBufferA)

11     {

12         stringBufferA.append("World");

13     }

この2つのコードを実際に実行すると、次の結果が得られます.
最初のコード結果:hello
2番目のコードの結果:helloWorld
これにより、StringBufferがわかる.append()はソース参照の値を変更する、メソッドの戻り値に依存せずString.concat()は文字列接合を行う場合,多くの一時オブジェクトを生成して保存するが,最後に接合終了後,この結果を一時オブジェクトを受信値に戻して再指向する必要があり,メソッドの戻り値に依存する必要があり,実行効率も文字数の増加に伴って低下し,真の参照源ではない.
まとめ:
使用する文字列を頻繁に変更する必要がある場合、StringBufferを使用すると効率が高くなり、StringBufferを使用して文字列の変更操作を行い、操作が完了したらStringに返すことができます.操作方法:String->StringBuffer->文字列の変更->String
続行...