---------------------- android培训、java培训、期待与您交流! ----------------------
BootStrap//jre/lib/rt.jar C++二进制 不是java类 jvm虚拟机内核 getClass() null
ExtClassLoader//jre/lib/ext/*.jar
AppClassLoader/classpath指定的所有jar或目录
类加载器 java类
System.class.getClassLoader()//null
loader = loader.getParent();
类加载器的委托机制
自己写的类加载器
必须继承ClassLoader抽象类
ClassLoader(ClassLoader Parent)默认值
自定义加载器加密解密
Thread getContextClassLoader()
setContextClassLoader(ClassLoader cl)
A中引用了B类,默认使用加载A的加载器加载B
ClassLoader.loadClass();//
从父类开始找
特殊写法,避免委托机制
模板方法设计模式:
loadClass 和 findClass 和 defineClass
加密解密
b^Oxff
srcPath=args[0];
destDir=args[1];
String destFileName = srcPath.subString(srcPath.lastIndexOf('\\')+1);
String destPath = destDir + "\\" +destFileName;
主类mainClass
有包名的不能调用无包名的类
字节数组流
@Override findClass
ByteArrayOutputStream
bos.toByteArray();
Class clazz = new MyClassLoader().loadClass("ClassLoadAttachment");
Date d1 = clazz.newInstance();//不可以用ClassLoadAttachment,父类引用
jvm加载
重启jdk
注意有无包名对程序的影响
相对/绝对路径 如何获得文件目录,加载文件
Tomcat启动会在jvm中产生许多加载器,servlet是被tomcat自定义的加载器加载的
web工程 特殊类 父类是Servlet
javax.servlet.http.HttpServlet
cn.itcast.itcasetweb.web.servlets
---------------------- android培训、java培训、期待与您交流! ----------------------