java.lang.management パッケージ - ClassLoadingMXBean インタフェース
ManagementFactory クラスを介して取得できるMXBeanの一つが実装するインタフェース。
- java.lang.management パッケージ - ManagementFactory クラス - HHeLiBeXの日記 正道編
- ClassLoadingMXBean (Java 2 Platform SE 5.0)
クラスのロード数を取得するメソッドと、クラスロードの状況をコンソールに出力するかどうかを設定するメソッドを持つ。
実際に試してみる。
import java.lang.management.ClassLoadingMXBean; import java.lang.management.ManagementFactory; public class Main { /** * @param args */ public static void main(String[] args) { ClassLoadingMXBean classLoadingMXBean = ManagementFactory.getClassLoadingMXBean(); System.out.println("isVerbose: " + classLoadingMXBean.isVerbose()); classLoadingMXBean.setVerbose(true); System.out.println("loadedClassCount: " + classLoadingMXBean.getLoadedClassCount()); System.out.println("totalLoadedClassCount: " + classLoadingMXBean.getTotalLoadedClassCount()); System.out.println("unloadedClassCount: " + classLoadingMXBean.getUnloadedClassCount()); try { Class.forName("Hoge"); } catch (ClassNotFoundException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } System.out.println("loadedClassCount: " + classLoadingMXBean.getLoadedClassCount()); System.out.println("totalLoadedClassCount: " + classLoadingMXBean.getTotalLoadedClassCount()); System.out.println("unloadedClassCount: " + classLoadingMXBean.getUnloadedClassCount()); } }
このコードの中で出てくるクラス"Hoge"は特にフィールドもメソッドも持たない空のクラス。
public class Hoge { }
で、これを実行した結果。
isVerbose: false loadedClassCount: 319 totalLoadedClassCount: 319 unloadedClassCount: 0 [Loaded Hoge from file:/C:/eclipse/sandbox/java5/classes/] loadedClassCount: 320 totalLoadedClassCount: 320 unloadedClassCount: 0 [Loaded java.lang.Shutdown from shared objects file] [Loaded java.lang.Shutdown$Lock from shared objects file]