JAVAにおける文字列定数プールとバッファプールの理解と役割の詳細な分析
この記事では、java に関する関連知識を提供します。主に文字列定数プールとバッファー プールの理解と役割を紹介します。文字列プールと定数プールはまったく異なります。2 つのことがあり、多くの場所があります。混同しやすいので初心者の方には誤解を招きやすいので、ここでは皆さんのお役に立てればと思い、丁寧に解説していきたいと思います。
推奨学習: 「java 学習チュートリアル 」
文字列プールは 文字列定数プール とも呼ばれます, この名前が誤解の元だと思います. string の 3 つの単語を省略して、constant pool だけを残す人もいます。文字列オブジェクトのキャッシュ プールを呼び出すだけです。 String pool
1 Constant pool
Constant プールは 2 つのタイプに分かれており、1 つは static です。 1 つは .class ファイル内の定数プール で、もう 1 つは .class ファイル内の静的定数プールを JVM にロードすることによって形成される 実行時定数プール#です。
1.1 静的定数プール
.class ファイル内の定数プールは配列とみなすことができます。一部の定数は配列に格納されます。バイトコードで必要な場合は、命令 この定数が使用される場合、配列のインデックスを通じてアクセスされます。 次のコードを見てください:String m = "hellohellohellohellohello"; String n = "hellohellohellohellohello";
// 常量池: #1 hellohellohellohellohello #2 ... ... ---------------------------- String m = #1; String n = #1;
hellohellohellohellohello が表示されます。解析対象:
1.2 ランタイム定数プール
静的定数プールを理解すると、ランタイム定数プールを理解するのが簡単になります。簡単に言えば、ランタイム定数プールは、JVM の .class ファイル内の静的定数プールのランタイム表現です。.class ファイル内の各静的定数プールは、対応するランタイム定数プールを生成します。 JVM は命令String m = #1 を解釈するときに、このクラスのランタイム定数プールに移動して #1 の定義を見つけることができます。
String オブジェクトを再利用するために Java によって設定されたキャッシュ プールであり、Java 1.7 より前ではメソッド領域に設定され、保存されていました。これは String オブジェクトです。Java 1.7 以降はヒープ上に設定され、
String オブジェクトへの参照を保存します。
String オブジェクト自体はヒープ上の別の場所に存在します。以下では Java 1.7 以降の状況を標準とします。
Integer や
Long などのラッパー タイプにも独自のキャッシュ プールがあります。 -128~127 のキャッシュ
Integer オブジェクト、リテラル代入または
Integer.valueOf() を使用する場合、対応するオブジェクトがプール内に存在する場合、プール内のオブジェクトが返されます。プール内にそのようなオブジェクトが存在しない場合にのみ、新しいオブジェクトがヒープ上に作成されます。
ただし、文字列プールとは異なり、これらの Wrapper プールは文字列プールのように増加しません。つまり、プール内のオブジェクトの数は固定されており、Integer プールには -128 ~ 127 のみが存在します。 . .
boolean values true and false all byte values short values between -128 and 127 int values between -128 and 127 char in the range \u0000 to \u007F
Java チュートリアル
」以上がJAVAにおける文字列定数プールとバッファプールの理解と役割の詳細な分析の詳細内容です。詳細については、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)

ホットトピック









Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

Spring Bootは、Java開発に革命をもたらす堅牢でスケーラブルな、生産対応のJavaアプリケーションの作成を簡素化します。 スプリングエコシステムに固有の「構成に関する慣習」アプローチは、手動のセットアップを最小化します。
