- ベストアンサー
参照型変数について
オブジェクトはメモリ上どの場所に生成されたか分からないので、参照型変数を生成して、そのオブジェクトのアドレスが分かるとのことですが、同じように参照型変数もメモリ上で生成されるのだから、アドレスがあると思うのですが、どうやれば分かるのですか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
実アドレスは、JVMは知っているでしょうが、プログラマは知り得ません。 Javaは基本的にプラットフォームによらずに動くわけなので、 そういったネイティブな部分はJVMが吸収してしまって、 プログラマは意識しなくていいようになっているわけです。 またJavaでは、参照型変数を参照するような考え方もありません。 参照型変数はCのポインタと似てると考えるとわかりやすいのですが、 そのあたりはCとはちがいます。
その他の回答 (2)
- thamansa
- ベストアンサー率40% (95/232)
回答No.2
オブジェクトのアドレスが分かるというのはC言語にたとえた比喩なので、Javaではアドレス値を変数に入れたり表示するプログラムを作ることはできません。 JVM(javaコマンド)が内部でアドレス値を扱っているので、JVMを改造すればアドレス値を表示することも不可能ではありません。私は知りませんが、そのようなツールもありそうな気がします。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.1
>どうやれば分かるのですか? 私も、JAVA初学者なので、きっぱりとは言い切れないのですが、 JAVAでは、 オブジェクト(分けているということは多分、基本データ型のことかな?)のアドレス、参照変数のアドレスなどを、 プログラマが参照する(知る)ことはできません。 JAVAコンパイラは、当然それらのアドレスを管理しているので知っています。 勘違いコメントだったらすみません。
お礼
ありがとうございました。