-java 类加载器,
分享于 点击 10654 次 点评:262
-java 类加载器,
java 虚拟机中,可以安装多个类加载器,系统默认的主要
有三个:BootStrap ExtClassLoader,AppClassLoader
类加载器也会死java类,因为其他加载器也会加载当前
类。必须有一个不是java类,这个就是:BootStrap
java虚拟机中所有类
首先排除当前线程的类加载器老加载一个类
BootStrap类负责加载jre/lib/rt.jar中的类,
ExtClassLoader 类加载器负责加载jre/lib/ext/*.jar中的类
AppClassLoader类加载器负责加载classpath 中指定的类
还可以ClassLoader.loadCLass() 方法加载。。
每个类加载加载类时,又先委托其上级类加载器。
自定义类加载器:
我们自定义类加载器的时候必须继承类加载器,对于我们自定义类加载器,我们只需要实现一些我们自己的方法,对于 findclass() 我们交给父类来实现,(委托的时候会向上级寻找类加载器),
自定义类加载器可以实现对我们自己类的加密,
由于类加载器的委托机制,我们在做项目的时候我们有时候明明已经导入了相关的jar 包,但是运行时候还是报错。抱不到类,,这是由于相关类加载器加载类的时候在相应目录下并没有相关的类,比如classpath 中的类。ExtClassLoader 类加载器并不能加载到。遇到这个问题吧相关jar包放入Ext目录下即可,,
相关文章
- 暂无相关文章
用户点评