アドレスの表示方法が知りたいのですが。

[戻る]
Qoo 2006/04/23(日) 17:25:49
始めまして。
Qooと申します。

Java入門者なので的外れな質問かも知れませんが、
大目に見てください(^-^;

質問なのですが、javaでC/C++のようにデータ型変数やクラス型変数のアドレスを
表示する方法などはありますでしょうか?

Cでしたら、

 int a = 10;
  printf( "aのアドレス : %d", &a );

で、変数aのアドレスを表示出来ると思うのですが、
Javaではどのようにしたら、変数やクラスのアドレスを表示出来るのでしょうか?

色々調べてみたら、ハッシュコードと言う物も見つけたのですが、
ちょっと違うようなので。。。
ご存知の方がいらっしゃいましたら、
教えて頂けないでしょうか。
宜しくお願いします。
ちなみに開発環境は" Java 2 SDK 1.4.1 "です。

シャノン 2006/04/23(日) 17:45:43
やってどうするんですか?
Java の利点は、そういうことができないことだと思っているのですが。

Qoo 2006/04/23(日) 21:34:19
シャノンさん返信ありがとうございます。

アドレスは何かに使うって言うわけではなく、
確認のために見てみたいと言うのが理由です。
まだJava学習中なもので、
アドレスがどのようになってのか知りたかったもので。
でも、javaではアドレスの表示とかが出来ないのが利点と言うのは、
ちょっと勉強になりました。

シャノン 2006/04/24(月) 02:00:42
Java では、自動的にガベージコレクション(不要メモリの自動開放)が行われます。
その際、同時にメモリコンパクション(メモリの断片化を防ぐため、開放しなかったメ
モリを1箇所にまとめること)が行われる場合があります。
つまり、メモリブロックはプログラマの知らないところで、勝手に移動される可能性が
あるということです(もちろん、勝手に移動されてもプログラムは問題なく動くよう
に、仮想マシンがよきにはからってくれます)。
メモリが移動されてしまいますから、ある変数は、あるタイミングと、次にガベージコ
レクトが行われたタイミングでは、異なるアドレスにある可能性があります。
そのため、仮に変数のアドレスを取得できたとしても、それを使って何かを行うことは
できません。むしろ、そんなことができてしまえば、バグの温床になり得ます。

俺も Java に詳しい方ではないですが、変数のアドレスはまず取得できないと考えてよ
いでしょう。

古いスレッドには追加発言できません。