ホームページ >Java >&#&チュートリアル >文字列_文字列
不変の文字列
文字列オブジェクトは不変です。 JVM はそれを最適化し、メモリ内の領域を文字列定数プールとしてオープンしました。 「リテラル」形式で作成された文字列オブジェクトはキャッシュされ、再利用されます。
//"字面量"形式创建的字符串 String str = "abc";
文字列演算子: " " と StringBuilder
演算子 " " は、文字列文字列を接続できます。コンパイラには最適化対策が施されており、ソースコードをコンパイルし、計算式のパラメータがすべてリテラルである場合、直接計算を実行し、その結果をクラスファイルにコンパイルします。
String str = "abcd"; String str1 = "ab"+"cd";//输出abcd 对象不变 System.out.println(str==str1);//true
計算式の一方が変数の場合、コンパイラは実行時に変数を結合し、最終的に新しいオブジェクトを生成するため、パフォーマンスが消費されます。
String str = "abcd"; String str1 = "ab"; String str2 = str1+"cd";//输出abcd 对象改变 System.out.println(str==str2);//false
StringBuilder
コンパイラはまた、コンパイル中に結合するために StringBuilder の append() メソッドを自動的に参照し、最後に toString() を呼び出して結果を生成します。ただし、.calss バイトコードの各スプライシング ループでは StringBuilder オブジェクトが作成されます。文字列操作が複雑な場合は、.java ファイルの作成時にスプライシング用の StringBuilder オブジェクトを作成します。
String の一般的なメソッド
以上が文字列_文字列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。