検索
ホームページJava&#&チュートリアルJavaのString.intern()関数を使用して、文字列を文字列定数プールに追加します。

Java の String.intern() 関数を使用して、文字列定数プールに文字列を追加します。

Java の文字列処理では、文字列の比較と文字列の結合で問題が発生することがよくあります。これは、特に大規模な文字列を扱う場合に発生します。文字列の数。プログラムのパフォーマンスを向上させ、メモリ領域を節約するために、Java では文字列定数プールに文字列を追加するメソッド、つまり String.intern() 関数を使用します。

Java の文字列定数プールは、頻繁に使用される文字列オブジェクトを再利用のために保存するために使用される特別なメモリ領域です。 Java では通常、二重引用符を使用して文字列オブジェクト (例: "Hello") を直接作成します。この方法で作成された文字列オブジェクトは、文字列定数プールに自動的に追加されます。 String.intern() 関数を使用して、文字列オブジェクトを文字列定数プールに手動で追加できます。

次のコード例は、String.intern() 関数を使用して文字列を文字列定数プールに追加する方法を示しています。

public class StringInternExample {
    public static void main(String[] args) {
        String str1 = "Hello";
        String str2 = new String("Hello");
        String str3 = new String("Hello").intern();
        String str4 = new StringBuilder("Hel").append("lo").toString();
        String str5 = new StringBuilder("Ja").append("va").toString().intern();

        System.out.println("str1 == str2: " + (str1 == str2)); // false
        System.out.println("str1 == str3: " + (str1 == str3)); // true
        System.out.println("str1 == str4: " + (str1 == str4)); // false
        System.out.println("str1 == str5: " + (str1 == str5)); // true
    }
}

上の例では、5 つの文字列オブジェクトを作成しました。二重引用符を使用して str1 によって作成された文字列は自動的に文字列定数プールに追加され、一方、new キーワードを使用して str2 によって作成された文字は自動的に追加されます。文字列定数プールへの文字列は、ヒープ内に新しいオブジェクトを作成します。 String.intern() 関数を使用して、str3 を文字列定数プールに手動で追加し、str1 と同じオブジェクトを参照するようにします。 str4 は StringBuilder によって結合された文字列で、str1 で参照されるオブジェクトとは別の新しいオブジェクトがヒープに作成されます。最後に、String.intern() 関数を使用して、str5 を文字列定数プールに追加し、str1 と同じオブジェクトを参照します。

プログラムを実行すると、次の出力結果が得られます。

str1 == str2: false
str1 == str3: true
str1 == str4: false
str1 == str5: true

出力結果からわかるように、String.intern() 関数を使用して文字列を文字列に追加した後、定数プールを使用すると、文字列の参照値を比較することで、2 つの文字列が等しいかどうかを判断できます。文字列定数プール内の文字列オブジェクトは一意であるため、参照判定により文字内容を 1 つずつ比較する必要がなくなり、プログラムのパフォーマンスが向上します。

String.intern() 関数を使用して文字列定数プールに文字列を追加した後、まず定数プール内に同じ内容の文字列があるかどうかを検索し、存在する場合は注意する必要があります。定数プールにオブジェクトがない場合は、定数プールに新しいオブジェクトを作成します。したがって、String.intern() 関数を使用するときはメモリの使用量に注意し、文字列定数プールに大量の文字列オブジェクトを頻繁に追加しないようにする必要があります。

つまり、Java の String.intern() 関数を使用して文字列定数プールに文字列を追加し、文字列オブジェクトを再利用することで、プログラムのパフォーマンスを向上させ、メモリ領域を節約できます。実際の開発では、特定のシナリオに応じて String.intern() 関数を柔軟に使用することで、プログラムの最適化の効果を得ることができます。

以上がJavaのString.intern()関数を使用して、文字列を文字列定数プールに追加します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1

メモ帳++7.3.1

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

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境