下の図をご覧ください。new
キーワードを使用して Java でオブジェクトを作成すると、OS からメモリ アドレスが取得されます。
書き込むと、out.println(objName)
「特別な」文字列が出力として表示されます。私の質問は次のとおりです:
- この出力は何ですか?
OS から与えられたメモリアドレスの場合:
a) この文字列をバイナリに変換するにはどうすればよいですか?
b) 1 つの整数変数のアドレスを取得するにはどうすればよいですか?
ベストアンサー1
それがクラス名でありSystem.identityHashCode()'@' 文字で区切られます。アイデンティティ ハッシュ コードが表す内容は実装によって異なります。多くの場合、オブジェクトの初期メモリ アドレスですが、時間の経過とともに VM によってオブジェクトがメモリ内で移動される可能性があります。したがって、(簡単に言えば) それが何かに依存することはできません。
Java では、変数のメモリ アドレスを取得しても意味がありません。JVM はオブジェクトを自由に実装し、必要に応じて移動できるためです (オブジェクトはガベージ コレクション中などに移動する可能性があります)。
整数.toBinaryString()バイナリ形式の整数を返します。