java class loader
来源:互联网 发布:ev3安卓编程软件 编辑:程序博客网 时间:2024/05/26 02:55
jvm classLoader architecture:
- Bootstrap ClassLoader/启动类加载器
主要负责jdk_home/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作。 - Extension ClassLoader/扩展类加载器
主要负责jdk_home/lib/ext目录下的jar包或 -Djava.ext.dirs 指定目录下的jar包装入工作。 - System ClassLoader/系统类加载器
主要负责java -classpath/-Djava.class.path所指的目录下的类与jar包装入工作。 - User Custom ClassLoader/用户自定义类加载器(java.lang.ClassLoader的子类)
在程序运行期间, 通过java.lang.ClassLoader的子类动态加载class文件, 体现java动态实时类装入特性。
类加载器特性:
- 每个ClassLoader都维护了一份自己的名称空间, 同一个名称空间里不能出现两个同名的类。
- 为了实现java安全沙箱模型顶层的类加载器安全机制, java默认采用了 " 双亲委派的加载链 " 结构。
为什么要使用这种双亲委托模式呢?
- 因为这样可以避免重复加载,当父亲已经加载了该类的时候,就没有必要子ClassLoader再加载一次。
- 考虑到安全因素,我们试想一下,如果不使用这种委托模式,那我们就可以随时使用自定义的String来动态替代java核心api中定义类型,这样会存在非常大的安全隐患,而双亲委托的方式,就可以避免这种情况,因为String已经在启动时被加载,所以用户自定义类是无法加载一个自定义的ClassLoader。
java动态载入class的两种方式:
- implicit隐式,即利用实例化才载入的特性来动态载入class
- explicit显式方式,又分两种方式:
- java.lang.Class的forName()方法
- java.lang.ClassLoader的loadClass()方法
- Java中的Class Loader
- Java中的Class Loader
- Java Class Loader
- Java Class Loader
- [java]class loader
- Java class loader(1)
- Java class loader(2)
- Java class loader
- java class loader
- java class loader 学习
- java class loader
- java Class Loader
- JAVA Class Loader
- JAVA CLASS LOADER
- JAVA Class Loader Initialization
- Java Class Loader
- Java Class Loader
- java class loader mechanism
- 聚集索引的重要性
- Linux的tar/zip等命令
- 面试资料
- .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
- Tomcat ava.lang.UnsupportedClassVersionError: Bad version number in .class file
- java class loader
- DLL详解
- SQL语句字符串处理大全
- spring价值
- Symbian OS应用开发 - 文件和目录
- MyEclipse优化:解决MyEclipse吃内存,让MyEclipse飞起来,MyEclipse速度
- Linux操作系统下使用FrameBuffer直接写屏
- magento-登录用户查看带有多层价格的商品时报错
- JAVA实现数据库基本操作指南