Javaの変数のメモリアドレス 質問する

Javaの変数のメモリアドレス 質問する

下の図をご覧ください。newキーワードを使用して Java でオブジェクトを作成すると、OS からメモリ アドレスが取得されます。

書き込むと、out.println(objName)「特別な」文字列が出力として表示されます。私の質問は次のとおりです:

  1. この出力は何ですか?
  2. OS から与えられたメモリアドレスの場合:

    a) この文字列をバイナリに変換するにはどうすればよいですか?

    b) 1 つの整数変数のアドレスを取得するにはどうすればよいですか?

代替テキスト

ベストアンサー1

それがクラス名でありSystem.identityHashCode()'@' 文字で区切られます。アイデンティティ ハッシュ コードが表す内容は実装によって異なります。多くの場合、オブジェクトの初期メモリ アドレスですが、時間の経過とともに VM によってオブジェクトがメモリ内で移動される可能性があります。したがって、(簡単に言えば) それが何かに依存することはできません。

Java では、変数のメモリ アドレスを取得しても意味がありません。JVM はオブジェクトを自由に実装し、必要に応じて移動できるためです (オブジェクトはガベージ コレクション中などに移動する可能性があります)。

整数.toBinaryString()バイナリ形式の整数を返します。

おすすめ記事