diff --git "a/java\345\237\272\347\241\200/classloader\345\222\214classforname.md" "b/java\345\237\272\347\241\200/classloader\345\222\214classforname.md" index c90991b70d33ef95c491586f397808931a7f9cac..07de6f54667407366eb5365d5e303d5548d63e63 100644 --- "a/java\345\237\272\347\241\200/classloader\345\222\214classforname.md" +++ "b/java\345\237\272\347\241\200/classloader\345\222\214classforname.md" @@ -8,6 +8,8 @@ 1. 类的加载过程 - 加载,连接(验证、准备、解析),初始化,使用,卸载,每一步做了什么都要熟悉,其他的如:加载的时候放在内存中哪个区(方法区或者元空间);准备的时候除了分配空间之外还做了什么,是初始化零值还是会设置实际值等(只会初始化零值) + 1)加载:通过类的全限定名,查找类的二进制字节流,将该字节流代表的静态存储结构转为方法区的运行时数据结构,最后在java堆中生成一个代表这个类的class对象,作为方法区这些数据的访问入口 + 2. 双亲委派模型 - 双亲委派模型的过程要知道,以及它的好处,不使用的话会有什么问题等,要打破双亲委派模型应该怎么做?(继承ClassLoader,重写loadClass方法),要自定义类加载器应该怎么做?(继承ClassLoader,重写findClass方法)