课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在上文中给大家简单介绍了类加载器的一些基础知识等内容,而本文我们就继续来学习一下,类加载器的加载类型都有哪些。
引导类加载器
引导类加载器又称为启动类加载器,该类是使用C/C++语言实现的,嵌套在JVM内部。它用来加载Java的核心类库(JAVA_HOME/jre/lib/rt.jar、resources.jar或sun.boot.class.path路径下的内容),用于提供jvm自身需要的类,出于安全考虑,Bootstrap启动类只加载包名为java、javax、sun等开头的类。它并不继承自java.lang.ClassLoader,没有父加载器。
自定义加载器
自定义加载器是指所有派生于抽象类CLassLoader的类加载器,它分为扩展类加载器、应用程序(系统)加载器、用户自定义加载器。
(1)扩展类加载器
java语言编写,由sun.misc.Launcher.ExtClassLoader实现。其父类加载器为启动类加载器,从java.ext.dirs系统属性所指定的目录中加载类库,或从jdk的安装目录的jre/lib/ext子目录(扩展目录)下加载类库。如果用户创建的jar放在此目录下,也会自动由扩展类加载器加载。
(2)系统加载器
java语言编写,由sun.misc.Launcher.AppClassLoader实现。父类加载器为扩展类加载器,负责加载环境变量classpath或系统属性,java.class.path指定路径下的类库。该类加载是程序中默认的类加载器。
(3)用户自定义加载器
开发人员可以通过继承抽象类java.lang.ClassLoader,并实现findClass()方法来实现自定义类加载器。在编写自定义类加载器时,如果没有太过于复杂的需求,可以直接继承URLClassLoader类,这样就可以避免自己去编写findClass()方法及其获取字节码流的方式,使自定义类加载器编写更加简洁。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。