类加载原理

类的加载
1.把类的.class文件中的数据读入到内存中,通常是创建一个字节数组读入.class文件
2.然后产生与所加载类对应的Class对象。加载完成后,Class对象还不完整,所以此时的类还不可用。
3.当类被加载后就进入连接阶段,这一阶段包括验证、准备(为静态变量分配内存并设置默认的初始值)和解析(将符号引用替换为直接引用)三个步骤

类的加载是由类加载器完成的,类加载器包括:
根加载器(BootStrap)、
扩展加载器(Extension)、
系统加载器(System)、
用户自定义类加载器(java.lang.ClassLoader的子类)

Bootstrap:一般用本地代码实现,负责加载JVM基础核心类库(rt.jar);
Extension:从java.ext.dirs系统属性所指定的目录中加载类库,它的父加载器是Bootstrap;
System:又叫应用类加载器,其父类是Extension。它是应用最广泛的类加载器。
它从环境变量classpath或者系统属性java.class.path所指定的目录中记载类,是用户自定义加载器的默认父加载器。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容