Java 8 で文字列を結合するために StringBuilder の詳細が不要になった
Java 開発者の間では、文字列連結による高いリソース消費がよく話題になります。
それが多くのリソースを占有する理由について詳しく説明します。 Java では、文字列オブジェクト は不変です。つまり、一度作成されると再度変更することはできません。したがって、文字列を連結すると、新しい文字列が作成され、古い文字列がガベージ コレクターによってマークされます。
public String concat(String str) { int otherLen = str.length(); if (otherLen == 0) { return this; } int len = value.length; char buf[] = Arrays.copyOf(value, len + otherLen); str.getChars(buf, len); return new String(buf, true); }
public static char[] copyOf(char[] original, int newLength) { char[] copy = new char[newLength]; System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength)); return copy; }
void getChars(char dst[], int dstBegin) { System.arraycopy(value, 0, dst, dstBegin, value.length); }
ドキュメントの説明 :
文字列連結のパフォーマンスを向上させるために、Java コンパイラーは StringBuffer クラスまたは同様のテクノロジーを使用して、評価Java コンパイラはこの状況を処理します:
public class StringConcatenateDemo { public static void main(String[] args) { String str = "Hello "; str += "world"; } }
public class StringConcatenateDemo { public StringConcatenateDemo(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return public static void main(java.lang.String[]); Code: 0: ldc #2 // String Hello 2: astore_1 3: new #3 // class java/lang/StringBuilder 6: dup 7: invokespecial #4 // Method java/lang/StringBuilder."<init>":()V 10: aload_1 11: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 14: ldc #6 // String world 16: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 19: invokevirtual #7 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 22: astore_1 23: return }
以上がJava 8 で文字列を結合するために StringBuilder の詳細が不要になったの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java8 は、minus() メソッドを使用して 1 年前の日付または 1 年後の日付を計算し、1 年前の日付を計算します。 packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo09{publicstaticvoidmain(String[ ]args ){LocalDatetoday=LocalDate.now();LocalDateprevious Year=today.minus(1,ChronoUni

StringBuilder クラスの append() メソッドは String 値を受け取り、それを現在のオブジェクトに追加します。文字列値を StringBuilder オブジェクトに変換します - 文字列値を取得します。 append() メソッドを使用して追加し、文字列を StringBuilder に取得します。例 次の Java プログラムでは、文字列の配列を単一の StringBuilder オブジェクトに変換しています。リアルタイム デモ publicclassStringToStringBuilder{ publicstaticvoidmain(Stringargs[]){&a

文字列内のコンテンツの一部を削除するには、Java の StringBuilder クラスの delete() メソッドを使用します。String クラスは、Java で一般的に使用される文字列処理クラスです。文字列操作によく使用されるメソッドが多数あります。ただし、場合によっては、文字列を頻繁に変更する必要があり、String クラスの不変性により新しい文字列オブジェクトが頻繁に作成されるため、パフォーマンスに影響します。この問題を解決するために、Java は StringBuilder クラスを提供します。

文字列の結合方法: 1. 「+」記号を使用して結合します。構文は「str = str1 + str2」です。 2. fmt パッケージの sprintf() 関数を使用して結合します。構文は「str = fmt. Sprintf("%s%d% s", s1, i, s2)"; 3. join 関数を使用して結合します。 4. バッファ パッケージの WriteString() 関数を使用して結合します。 5. バッファ パッケージのビルダーを使用します。 () 結合する関数。

stringbuilder をクリアするメソッドは次のとおりです: 1. setLength(0) メソッドを使用して StringBuilder オブジェクトをクリアします; 2. delete(0, length) メソッドを使用して StringBuilder オブジェクトをクリアします; 3. replace(0, length, " ") メソッドで StringBuilder オブジェクトをクリアします; 4. 、 new StringBuilder() を使用して、新しい StringBuilder オブジェクトを再作成します。

Java の StringBuilder.replace() 関数を使用して、指定した範囲の文字を置換します。Java では、StringBuilder クラスが replace() メソッドを提供し、これを使用して文字列内の指定した範囲の文字を置換できます。このメソッドの構文は次のとおりです。 publicStringBuilderreplace(intstart,intend,Stringstr) 上記のメソッドは、インデックス スターを置き換えるために使用されます。

Java ドキュメントの解釈: StringBuilder クラスの substring() メソッドの詳細な紹介 はじめに: Java プログラミングでは、文字列処理は最も一般的な操作の 1 つです。 Java には、文字列処理用の一連のクラスとメソッドが用意されており、その中で StringBuilder クラスは、頻繁に文字列を操作する場合によく使用される選択肢です。 StringBuilder クラスの substring() メソッドは、文字列の部分文字列をインターセプトするための非常に便利なメソッドです。この記事では、

Java は StringBuilder クラスの substring() 関数をどのように使用して文字列の部分文字列をインターセプトしますか? Java では、多くの場合、文字列操作を処理する必要があります。 Java の StringBuilder クラスは、文字列の操作を容易にする一連のメソッドを提供します。その中で、substring() 関数は文字列の部分文字列をインターセプトするために使用できます。 substring() 関数には 2 つのオーバーロード形式があります。
