Java - NULL変数がメモリにスペースを必要とするか
2023-11-29 03:03:25
質問
次のコードのブロックを考えてみましょう。
class CheckStore {
private String displayText;
private boolean state;
private String meaningfulText;
private URL url;
public CheckStore(String text, boolean state) {
this.displayText = text;
this.state = state;
}
:
:
}
二つの変数を初期化すると
displayText
と
state
) をコンストラクタで使用する場合、他の二つの変数 (
meaningfulText
と
url
) を格納するために、メモリにスペースが必要です。
null
の値を格納するためのスペースが必要ですか?
Q1. もし、容量が必要な場合は、どの程度のメモリで
null
の値は、どの程度のメモリを消費するのでしょうか?
(例
int
は4バイトを消費します)。
Q2. 文字列はメモリ上にどれくらいの容量を消費しますか?文字列はどのくらいのメモリ容量を消費するのでしょうか。文字列の長さに依存するのでしょうか。
どのように解決するのですか?
Javaでは
null
は参照(基本的には制限されたポインタです)が持つことができる値に過ぎません。 これは、参照が何も参照していないことを意味します。 この場合、参照のためのスペースはまだ消費されます。 これは、32ビットシステムでは4バイト、64ビットシステムでは8バイトです。 しかし、参照を指すクラスのインスタンスを実際に割り当てるまでは、参照が指すクラスのためのスペースは消費されません。
編集: 文字列に関しては
String
は各文字に対して16ビット(2バイト)、さらに少量の帳簿管理オーバーヘッドを必要とします。
関連
-
ajax コミット リソースの読み込みに失敗しました: サーバーはステータス 400 で応答しました ()
-
Uncaught ReferenceError: は定義されていません。
-
eclipse にリソースリーク:'in' が閉じない
-
Java:未解決コンパイル問題の解決方法
-
テストが空であるかどうかを判断するためのオプションの処理
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
無効なメソッド宣言
-
java.sql.SQLException: 結果セットの開始前
-
Javaがテキストファイルを読み込む
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
Java:未解決コンパイル問題の解決方法
-
Java基礎 - マッピングとQ/A
-
switch case文のcaseの後の列挙定数は列挙型なし
-
[解決済み】Spring JPAで特定のカラムを選択する方法