public class OsservaClassLoader {
    public static void main(String[] args) throws ClassNotFoundException {
        osserva("Applicazione", OsservaClassLoader.class);
        osserva("java.sql.Driver", java.sql.Driver.class);
        osserva("java.util.ArrayList", java.util.ArrayList.class);

        ClassLoader sistema = ClassLoader.getSystemClassLoader();
        ClassLoader piattaforma = ClassLoader.getPlatformClassLoader();
        System.out.println("sistema = " + sistema.getClass().getName());
        System.out.println("piattaforma = " + piattaforma.getClass().getName());
        System.out.println("padre del sistema = " + sistema.getParent());
        System.out.println("Class.forName = "
                + Class.forName("java.util.ArrayList").getName());
    }

    private static void osserva(String etichetta, Class<?> tipo) {
        ClassLoader loader = tipo.getClassLoader();
        String nome = loader == null ? "bootstrap" : loader.getClass().getName();
        System.out.println(etichetta + " -> " + nome);
    }
}
