JAVAのStringとStringBufferの違い
String と StringBuffer の違いはインターネット上で無数にあると言えますが、この記事を見たとき、その中にある小さな例が非常に代表的であると感じたので、それを参照して自分で要約してみました。
Javaにはキャラクターの操作を担当するクラスが3つあります。
1.Character は単一の文字を操作し、
2.String は文字列を操作します。不変クラス。
3.StringBuffer も文字列を操作しますが、これは変数クラスです。
String:
はプリミティブ型ではないオブジェクトです。
作成された値は変更できません。
既存の String オブジェクトを変更するには、新しいオブジェクトを作成してから、
String は最終クラスです。つまり、継承できません。
は変更されると、String のように再作成されません。
コンストラクターを通してのみ作成できます。
StringBuffer sb = new StringBuffer();
注: オブジェクトの作成後、値シンボルを通して支払うことはできません。
sb = "welcome to here!";//error
、メモリはメモリ空間に割り当てられ、最初に null を保存します。StringBuffer
に値を支払うとき、その append メソッドを使用できます。
sb.append("hello");
str += "here";
の処理手順は、実際には StringBuffer を作成し、append() を呼び出し、最後に
次に StringBuffer を変換することです。 toSting();
こんな感じ この場合、Stringの接続操作はStringBufferと比べて追加の操作が必要となり、当然効率は落ちます
この方法では、元のオブジェクトは役に立たず、ガベージ コレクションされます。
26 個の英語文字を 5000 回追加しました。
1. 文字列 tempstr = "abcdefghijklmnopqrstuvwxyz" ;
3. 文字列 str = "";
5. < 回; i++) {
6 . str += tempstr;
7. longlen1 = System.currentTimeMillis(); 得られる結果は毎回同じではない可能性があります (通常は 46687 程度)。
46秒です。
次のコードをもう一度見てみましょう
1. String tempstr = "abcdefghijklmnopqrstuvwxyz";
2. int time = 5000;
3. long lstart2 = System.currentTimeMillis();
4.リングバッファ sb = 新しい StringBuffer( );
5. for (int i = 0; i
7. long let2 = System.currentTimeMillis();
10. System.out.println(time2);
結果は 16 ですが、場合によっては 0 になります
結論は明らかで、StringBuffer は String よりもほぼ数万倍高速です。もちろん、このデータはあまり正確ではありません。サイクル数が 100,000 回になると、その差はさらに大きくなるからです。私の言うことが信じられないなら、試してみてください。
上記によると:
str += "here";
処理ステップは、実際には StringBuffer を作成し、append() を呼び出し、最後に
次に StringBuffer toSting();
str = sb.toString();
1. 文字列 tempstr = "abcdefghijklmnopqrstuvwxyz";
2. int time = 5000;
3. int i 7.
8. str = System.currentTimeMillis();
11. System.out println(time2);
平均実行時間は約 46922、つまり 46 秒です。
要約: プログラム内の文字列を頻繁に変更して接続する必要がある場合は、StringBuffer を使用するとパフォーマンスが高くなります

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











AIは、作曲家の使用を最適化するのに役立ちます。特定の方法には次のものが含まれます。1。依存関係管理の最適化:AIは依存関係を分析し、最適なバージョンの組み合わせを推奨し、競合を減らします。 2。自動コード生成:AIは、ベストプラクティスに準拠したComposer.jsonファイルを生成します。 3.コードの品質を改善する:AIは潜在的な問題を検出し、最適化の提案を提供し、コードの品質を向上させます。これらの方法は、開発者が効率とコードの品質を向上させるのに役立つ機械学習および自然言語処理技術を通じて実装されています。

MySQL関数は、データ処理と計算に使用できます。 1.基本的な使用には、文字列処理、日付計算、数学操作が含まれます。 2。高度な使用法には、複数の関数を組み合わせて複雑な操作を実装することが含まれます。 3.パフォーマンスの最適化では、Where句での機能の使用を回避し、GroupByおよび一時テーブルを使用する必要があります。

MySQLで文字セットと照合を構成する方法は次のとおりです。1。サーバーレベルでの文字セットとコレクションの設定:setNames'utf8 '; setCharacterSetutf8; setCollation_connection = 'utf8_general_ci'; 2。特定の文字セットと照合を使用するデータベースを作成します:createdatabaseexample_dbcharactersetutf8collateutf8_general_ci; 3.テーブルを作成するときに文字セットとコレクションを指定:createTableExample_table(idint

MySQLでデータベースを変更するには、間接的な方法が必要です。手順は次のとおりです。1。新しいデータベースを作成します。 2。mysqldumpを使用して、古いデータベースをエクスポートします。 3.データを新しいデータベースにインポートします。 4.古いデータベースを削除します。

CにSingletonパターンを実装すると、静的メンバー変数と静的メンバー関数を介してクラスのインスタンスが1つしかないことを保証できます。特定の手順には次のものが含まれます。1。プライベートコンストラクターを使用し、コピーコンストラクターと課題演算子を削除して、外部の直接インスタンス化を防ぎます。 2.静的メソッドGetInstanceを介してグローバルアクセスポイントを提供して、1つのインスタンスのみが作成されるようにします。 3。スレッドの安全性のために、再チェックロックモードを使用できます。 4。メモリの漏れを避けるために、STD :: shared_ptrなどのスマートポインターを使用します。 5。高性能要件については、静的なローカル変数を実装できます。シングルトンのパターンはグローバルな国家の乱用につながる可能性があることに注意する必要があり、それを慎重に使用して代替案を考慮することをお勧めします。

javaplaysasificanificantduetduetoitsplatformindepence.1)itallowscodetobewrittendunonvariousdevices.2)java'secosystemprovidesutionforiot.3)そのセキュリティフィートルセンハンス系

Javaは、クロスサーバーWebアプリケーションの開発に適しています。 1)Javaの「Write and、Run Averywhere」哲学は、JVMをサポートするあらゆるプラットフォームでコードを実行します。 2)Javaには、開発プロセスを簡素化するために、SpringやHibernateなどのツールを含む豊富なエコシステムがあります。 3)Javaは、パフォーマンスとセキュリティにおいて優れたパフォーマンスを発揮し、効率的なメモリ管理と強力なセキュリティ保証を提供します。

HTMLで要素の回転効果を設定する方法は? CSSとJavaScriptを使用して達成できます。 1. CSSの変換特性は、回転(45DEG)などの静的回転に使用されます。 2。JavaScriptは、変換属性を変更することで実装される回転を動的に制御できます。
