栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java类加载过程和 类加载器的理解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java类加载过程和 类加载器的理解

类加载器理解 类加载器
  • 作用
    负责将.class文件(存储的物理文件)加载在到内存中(或者说是虚拟机)
类加载过程
  1. 加载
    通过包名 + 类名,获取这个类,准备用流进行传输
    在这个类加载到内存中
    加载完毕创建一个class对象

  2. 链接

  • 验证
    确保Class文件字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身安全
    (文件中的信息是否符合虚拟机规范有没有安全隐患)
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/dd1b5e7c0d264ac595dd397d140bd637.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5aSn6LC3b3Zv,size_20,color_FFFFFF,t_70,g_se,x_16
  • 准备
    负责为类的类变量(被static修饰的变量)分配内存,并设置默认初始化值
    (初始化静态变量)
  • 解析
    将类的二进制数据流中的符号引用替换为直接引用
    (本类中如果用到了其他类,此时就需要找到对应的类)
  1. 初始化
    根据程序员通过程序制定的主观计划去初始化类变量和其他资源
    (静态变量赋值以及初始化其他资源)
  • 小结
    当一个类被使用的时候,才会加载到内存
    类加载的过程: 加载、验证、准备、解析、初始
类加载的分类
  • 分类
    Bootstrap class loader:虚拟机的内置类加载器,通常表示为null ,并且没有父null
    Platform class loader:平台类加载器,负责加载JDK中一些特殊的模块
    System class loader:系统类加载器,负责加载用户类路径上所指定的类库
  • 类加载器的继承关系
    System的父加载器为Platform
    Platform的父加载器为Bootstrap
类加载的双亲委派模型
  • 如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器,如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载,这就是双亲委派模式
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340299.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号