アドレスの表示方法が知りたいのですが。 – プログラミング – Home

アドレスの表示方法が知りたいのですが。
 
通知
すべてクリア

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


Qoo
 Qoo
(@Qoo)
ゲスト
結合: 20年前
投稿: 25
Topic starter  

始めまして。
Qooと申します。

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

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

Cでしたら、

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

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

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


引用解決済
トピックタグ
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

やってどうするんですか?
Java の利点は、そういうことができないことだと思っているのですが。


返信引用
Qoo
 Qoo
(@Qoo)
ゲスト
結合: 20年前
投稿: 25
Topic starter  

シャノンさん返信ありがとうございます。

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


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

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

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました