• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メモリにロードされたクラスの判別方法)

メモリにロードされたクラスの判別方法

このQ&Aのポイント
  • Javaのプログラムで任意のクラスがメモリにロードされているかどうかを判定する方法を教えてください。
  • ClassLoaderクラスを使用すれば、任意のクラスがJavaVMのメモリ上にロードされているかどうかを判定できます。
  • 具体的な使用方法についてはわかりませんが、インターネット上にサンプルコードやチュートリアルがあるはずです。

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

> BクラスがjavaVMのメモリ領域にロードされるタイミングは以下のタイミングの認識で宜しいでしょうか? 挙げられている以外の場合でもクラスBがロードされることはあり得ます。B.classにアクセスするとか、Class.forName("B")を呼ぶとか。 > ClassLoaderクラスを使用すれば出来そうな感じがしたのですが、使い方が分からず行き詰ってしまいました。 findLoadedClass()を使おうとしたのでしょうか。このメソッドはprotectedなので、URLClassLoaderあたりを継承したクラスを自作してその中から呼ぶ必要があります。 クラスがロード済か否かを調べる目的は何でしょうか。

tanishimi
質問者

補足

回答有難うございます。 >クラスがロード済か否かを調べる目的は何でしょうか。 深い意味はないのですが、内部的にJavaVMがどんなことをやっているのかを知りたいなと思いました。 また、まだ勉強していませんがガーベッジコレクションという機能があって、自動でメモリを開放していたりしますが、実際のプログラムで(明示的に指定はできませんが)確認できれば良いなと思った次第です。 >findLoadedClass()を使おうとしたのでしょうか。 仰るとおりです。もう一つCクラスを作成しました。 ClassLoaderをextendsして、findLoadedClass()メソッドを書いて確認しようとしましたが、イマイチ分からなく今回の質問に至りました。

すると、全ての回答が全文表示されます。

関連するQ&A