一、类的加载主要分三步:
1.类加载:将class文件加载为class类对象;
2.实例化:通过构造器构造class类的实例对象,一个类可以有多个实例;
3.初始化:向类实例中填充类属性;
二、网上将双亲委派的太多了,详情我急不讲了,自己看去。我主要讲:双亲委派是发生在类加载 过程中的,是类加载器将class文件加载为class类对象的过程。至于为什么要先委派父类完成类加载原因有2个:
1.保证所有类只加载一次;
2.保证核心类不被自定义的类篡改。比如你自己写了一个java.lang.String类,如果不经过双亲委派加载类,就可能覆盖jdk的String核心类。
三、网上讲spring三级缓存的也很多,人家也有源码图片,自己看去。我主要讲讲:
1.三级缓存主要是:singletonObjects(已经实例化 初始化后的对象)、
earlySingletonObjects、singletonFactories(这两个都是创建中的对象,都是实例化后即将初始化的对象)
2.三级缓存主要解决问题:循环依赖问题;
先写到这,下次继续~~