类加载器的继承结构
类加载器的继承结构 类加载器的继承结构:Java类加器分类: 类的装载,连接,初始化装载: 把二进制的java类读入到Java虚拟机中连接: 把已读入虚拟机的二进制Java类数据合并到虚拟机的运行时状态中去 分为三步1.
类加载器的继承结构
Java类加器分类:
类的装载,连接,初始化
装载: 把二进制的java类读入到Java虚拟机中
连接: 把已读入虚拟机的二进制Java类数据合并到虚拟机的运行时状态中去
分为三步1.验证2.准备3.解析(可选,也可在初始化之后,当被用到时在解析)
初始化:给类变量赋以适当的初始值
动态扩展java:
1.java.lang.Class的forName()方法
forName(String className, boolean initialize, ClassLoader loader)
当loader=null时,使用启动类装载器来装载指定类
forName(String className)
此时,使用当前的类装载器装载
2.用户自定义类装载器的loadClass()方法
ClassLoader类包含了两个loadClass()的重载方法
loadClass(String className)
loadClass(String className, boolean resolve)
resolve参数表示是否在装载时执行该类的连接。双参数方法已经过时,不要使用。
loader.loadClass(“Myclass”); 时必须使用全名,即需要包含你的包名。
而loader = new URLClassLoader(urls); 只是用于加载时的路径,相当于将你指定的目录加载到了CLASSPATH中。
自定义加载器,不要覆写loadClass()方法,只要覆写findClass()。
更多推荐
所有评论(0)