一、Java
类加载过程
- 初始化:对类的静态变量初始化为指定的值,执行静态代码块。
二、Java
类加载器
1. 自定义类加载器
public class MyClassLoader extends ClassLoader {
@Override
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
return super.loadClass(name, resolve);
}
@Override
protected Class<?> findClass(String className) throws ClassNotFoundException {
return super.findClass(className);
}
}
2. 双亲委派机制
3. 示例——双亲委派机制
package java.lang;
public class String {
@Override
public String toString() {
return "String{}";
}
public static void main(String[] args) {
String string = new String();
string.toString();
}
}
4. 示例——打破双亲委派机制,验证沙箱安全机制
public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
MyClassLoader2 classLoader = new MyClassLoader2("E:\\java\\toobox\\learn\\java-learn\\java-jvm\\src\\main\\java");
Class clazz = classLoader.loadClass("java.lang.String");
}
5. 打破双亲委派机制
三、Tomcat
类加载器

1. Tomcat
委派机制