ホームページ Java &#&チュートリアル 文字列のstringbufferとstringbuilderの違いは何ですか?

文字列のstringbufferとstringbuilderの違いは何ですか?

Jul 02, 2020 pm 02:14 PM
stringbuffer stringbuilder

文字列における stringbuffer と stringbuilder の違いは次のとおりです: 1. StringBuffer はスレッド セーフですが、StringBuilder はスレッド セーフではありません; 2. StringBuffer はメソッドの同期を公開しますが、StringBuilder は公開しません。

文字列のstringbufferとstringbuilderの違いは何ですか?

#文字列の stringbuffer と stringbuilder の違いは次のとおりです:

違い 1: スレッド セーフ

StringBuffer: スレッドセーフ、StringBuilder: スレッドアンセーフ。 StringBuffer のすべてのパブリック メソッドが同期されており、StringBuilder は StringBuilder で変更されていないためです。

StringBuffer コード スニペット:

@Override
public synchronized StringBuffer append(String str) {
    toStringCache = null;
    super.append(str);
    return this;
}
ログイン後にコピー

違い 2: Buffer

StringBuffer コード スニペット:

private transient char[] toStringCache;
@Override
public synchronized String toString() {
    if (toStringCache == null) {
        toStringCache = Arrays.copyOfRange(value, 0, count);
    }
    return new String(toStringCache, true);
}
ログイン後にコピー

StringBuilder コード スニペット:

@Override
public String toString() {
    // Create a copy, don't share the array
    return new String(value, 0, count);
}
ログイン後にコピー

StringBuffer が toString を取得するたびに、バッファ領域の toStringCache 値を直接使用して文字列を構築することがわかります。

StringBuilder は、毎回文字配列をコピーして文字列を構築する必要があります。

つまり、キャッシュのフラッシュも StringBuffer の最適化ですが、StringBuffer の toString メソッドは依然として同期です。

違い 3: パフォーマンス

StringBuffer はスレッドセーフであるため、そのすべてのパブリック メソッドは同期され、StringBuilder はメソッドのロックや同期を行わないため、間違いはありません。 StringBuilder のパフォーマンスは StringBuffer よりもはるかに優れていることがわかります。

関連する学習に関する推奨事項:

Java ビデオ チュートリアル

以上が文字列のstringbufferとstringbuilderの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

stringbuilderをクリアする方法は何ですか? stringbuilderをクリアする方法は何ですか? Oct 12, 2023 pm 04:57 PM

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

Java の StringBuilder クラスの delete() メソッドを使用して、文字列内のコンテンツの一部を削除します。 Java の StringBuilder クラスの delete() メソッドを使用して、文字列内のコンテンツの一部を削除します。 Jul 26, 2023 pm 08:43 PM

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

Java で文字列を StringBuilder に変換する Java で文字列を StringBuilder に変換する Sep 02, 2023 pm 03:57 PM

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

Java ドキュメントの解釈: StringBuilder クラスの substring() メソッドの詳細な紹介 Java ドキュメントの解釈: StringBuilder クラスの substring() メソッドの詳細な紹介 Nov 03, 2023 pm 04:31 PM

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

Java の StringBuilder.replace() 関数を使用して、指定された範囲の文字を置換します。 Java の StringBuilder.replace() 関数を使用して、指定された範囲の文字を置換します。 Jul 24, 2023 pm 06:12 PM

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

Java で StringBuilder クラスの substring() 関数を使用して文字列の部分文字列をインターセプトする方法 Java で StringBuilder クラスの substring() 関数を使用して文字列の部分文字列をインターセプトする方法 Jul 24, 2023 pm 12:13 PM

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

Java は StringBuilder クラスの insert() 関数をどのように使用して、指定された位置に文字列を挿入しますか? Java は StringBuilder クラスの insert() 関数をどのように使用して、指定された位置に文字列を挿入しますか? Jul 25, 2023 am 09:31 AM

Java は StringBuilder クラスの insert() 関数を使用して、指定された位置に文字列を挿入する方法を教えてください? Java プログラミングでは、String クラスは不変クラスであり、文字列オブジェクトが一度作成されると、その値は変更できません。しかし、実際の開発では、ある文字列の中に別の文字列を挿入する必要がある場合があります。この機能を実現するために、Java では StringBuilder クラスが提供されています。 StringBuilder は、次のことを可能にする可変クラスです。

Java の StringBuilder.indexOf() 関数を使用して、文字列バッファ内の部分文字列の位置を検索します。 Java の StringBuilder.indexOf() 関数を使用して、文字列バッファ内の部分文字列の位置を検索します。 Jul 24, 2023 pm 11:33 PM

Java の StringBuilder.indexOf() 関数を使用して、文字列バッファ内の部分文字列の位置を検索します。文字列操作はプログラミングでよく使用される操作の 1 つであり、Java でよく使用されるクラスは StringBuilder です。 StringBuilder は Java の可変文字列シーケンスであり、文字列を編集、接続、操作するための豊富なメソッドを提供します。文字列操作では、文字列バッファー内で特定の部分文字列を検索する必要がある場合があります。

See all articles