文字列_文字列

(*-*)浩
(*-*)浩転載
2019-09-28 16:53:592155ブラウズ

文字列_文字列

不変の文字列

文字列オブジェクトは不変です。 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 サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。