首先从class path中加载第一个类。类加载完成之后,存放在方法区。
当执行类的方法时,发现新的类创建时,从方法区装载类的信息到堆,方法区没有类信息,则从class path中加载class文件到方法区。
堆中创建的新对象,持有着指向方法区的class的引用
持久带:通过class loader 加载进来的class文件 存放区域。
将静态的class文件转换为内存中动态的可执行的数据结构。
类加载过程:加载->链接(解析语法是否正确、准备为静态成员变量分配内存<方法区中>并初始化值、解析<将符号引用转变为直接引用>)->初始化(为变量分配指定的初始化值、执行静态代码块)->使用->卸载