做网站会员登陆,页面模板功能找不到,什么网站广告最多,最近国际新闻大事文章目录 一、类加载是什么二、类加载过程1.加载2.验证3.准备4.解析5.初始化 三、什么时候进行类加载四、双亲委派模型1.三大类加载器2.加载过程 总 一、类加载是什么 把.class文件加载到内存中#xff0c;得到类对象的过程。 二、类加载过程
1.加载 找到.class文件#xff… 文章目录 一、类加载是什么二、类加载过程1.加载2.验证3.准备4.解析5.初始化 三、什么时候进行类加载四、双亲委派模型1.三大类加载器2.加载过程 总 一、类加载是什么 把.class文件加载到内存中得到类对象的过程。 二、类加载过程
1.加载 找到.class文件读取文件内容 2.验证 验证找到的文件是否为一个.class文件.class文件有明确的数据格式 3.准备 给类对象分配空间。 注意这个空间是未初始化的空间内存空间中的数据是全0的。
4.解析 字符串常量池中的符号引用替换为直接引用。针对字符串常量进行初始化 字符串常量池中的符号引用就是字符串常量在.class文件中就已经存在了。这些字符串常量并不知道在内存中的实际地址只知道彼此之间的相对位置。 在进行初始化后每个字符串常量拥有了在内存中的实际地址直接引用但是彼此的相对位置并没有发生改变。符号引用替换成了直接引用。
举个生活中的例子假设班级一起组织去看电影老师会安排学生进行排队小宇和小顾自然的排在了一起符号引用。在入场前小宇和小顾一直保持在一排到了电影院后分座位号直接引用时自然也就是紧挨着了。相对位置不变。
5.初始化 针对类对象进行初始化 初始化静态成员、执行静态代码块如果有父类还需要加载父类。
三、什么时候进行类加载
类加载非必要时不加载。 只有在下列三种情况时才会加载。 1.创建了类的实例 2.使用了类的静态方法 3.使用子类触发了父类的加载。
四、双亲委派模型
实际是‘单亲’。
1.三大类加载器
BootStrap ClassLoader 加载java标准库中的类Extension ClassLoader 加载java非标准库中的雷但是是Sun/Oracle扩展的库的类Application ClassLoader 加载自己创建的类
2.加载过程 总
祝大家顺顺利利健健康康天天开心下次见