重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

オブジェクトはメモリ上どの場所に生成されたか分からないので、参照型変数を生成して、そのオブジェクトのアドレスが分かるとのことですが、同じように参照型変数もメモリ上で生成されるのだから、アドレスがあると思うのですが、どうやれば分かるのですか?

A 回答 (3件)

実アドレスは、JVMは知っているでしょうが、プログラマは知り得ません。


Javaは基本的にプラットフォームによらずに動くわけなので、
そういったネイティブな部分はJVMが吸収してしまって、
プログラマは意識しなくていいようになっているわけです。
またJavaでは、参照型変数を参照するような考え方もありません。
参照型変数はCのポインタと似てると考えるとわかりやすいのですが、
そのあたりはCとはちがいます。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2005/05/19 10:20

オブジェクトのアドレスが分かるというのはC言語にたとえた比喩なので、Javaではアドレス値を変数に入れたり表示するプログラムを作ることはできません。



JVM(javaコマンド)が内部でアドレス値を扱っているので、JVMを改造すればアドレス値を表示することも不可能ではありません。私は知りませんが、そのようなツールもありそうな気がします。
    • good
    • 0

>どうやれば分かるのですか?


私も、JAVA初学者なので、きっぱりとは言い切れないのですが、
JAVAでは、
オブジェクト(分けているということは多分、基本データ型のことかな?)のアドレス、参照変数のアドレスなどを、
プログラマが参照する(知る)ことはできません。
JAVAコンパイラは、当然それらのアドレスを管理しているので知っています。

勘違いコメントだったらすみません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!