public class ObserveClassLoader {
    public static void main(String[] args) throws ClassNotFoundException {
        observe("Application", ObserveClassLoader.class);
        observe("java.sql.Driver", java.sql.Driver.class);
        observe("java.util.ArrayList", java.util.ArrayList.class);

        ClassLoader system = ClassLoader.getSystemClassLoader();
        ClassLoader platform = ClassLoader.getPlatformClassLoader();
        System.out.println("system = " + system.getClass().getName());
        System.out.println("platform = " + platform.getClass().getName());
        System.out.println("system parent = " + system.getParent());
        System.out.println("Class.forName = "
                + Class.forName("java.util.ArrayList").getName());
    }

    private static void observe(String label, Class<?> type) {
        ClassLoader loader = type.getClassLoader();
        String name = loader == null ? "bootstrap" : loader.getClass().getName();
        System.out.println(label + " -> " + name);
    }
}
