编写代码,展示如何获取当前类加载器及其所有父加载器。

在Java中,我们可以通过以下代码来输出当前类的类加载器,以及其所有的父类加载器:

public class Test {
    public static void main(String[] args) {
        ClassLoader loader = Test.class.getClassLoader();
        while (loader != null) {
            System.out.println(loader.toString());
            loader = loader.getParent();
        }
    }
}

在这段代码中,我们首先获取了当前类Test的类加载器,然后通过一个循环,不断地获取并输出当前类加载器的父类加载器,直到没有父类加载器为止。

这段代码的输出可能类似于:

sun.misc.LauncherAppClassLoader@18b4aac2
sun.misc.LauncherExtClassLoader@6f94fa3e

这表示Test类是由AppClassLoader加载的,AppClassLoader的父类加载器是ExtClassLoader。而ExtClassLoader的父类加载器是引导类加载器(Bootstrap ClassLoader),但是引导类加载器在Java中获取不到,所以最终的输出没有引导类加载器。

发表评论

后才能评论