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

JVM类加载

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

JVM类加载

文章目录
  • 前言
  • 一、类编译机制
  • 二、类加载过程
    • 1.类加载器
    • 2.双亲委派机制
      • 作用


前言

Java项目启动时都会去执行main方法,因为main方法中包括了主要的逻辑代码,那么执行main方法之前都做了什么?


一、类编译机制

将一个.java文件经过词法分析、语法分析、语义分析等一系列操作最终生成对应的字节码文件(.class文件)的过程,这个过程并不属于JVM的部分。

二、类加载过程

将字节码文件(.class)文件加载到内存中,方便后面运行过程中实例化和进行运算

步骤描述
加载从磁盘中读取字节码文件(.class),并在内存中生成一个class对象
验证校验字节码文件的正确性
准备给静态变量分配内存,并初始化为默认值
解析将符号引用替换为直接引用
初始化将类中的静态变量赋值为指定值,执行静态代码块
使用业务逻辑中被调用
卸载代码运行结束所有内存被释放
1.类加载器
分类作用
引导类加载器用来加载Java的核心类库,既jdk_home/lib目录下的核心api
拓展类加载器加载支持Java运行的一些拓展类,比如DNS相关、ZIP相关等jar包
系统类加载器java 应用的类都是由它来完成加载的
自定义加载器通过继承java.lang.ClassLoader类的方式实现自己的类加载器
2.双亲委派机制

如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器,如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载

作用
  1. 避免重复加载
  2. 具有沙箱安全,保证核心API不会被替换

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/305732.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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