类加载顺序及加载过程详解

戚薇 Java教程 发布时间:2022-07-20 11:00:34 阅读数:3974 1
下文笔者讲述类的加载顺序及加载过程的详解说明,如下所示

java创建对象的方式分为以下四种

  new 
  反射
  克隆
  反序列化

class对象获取的方式分享

   
    //没有完成初始化过程
	Class clazz1 = 类名.class 
	//没有完成初始化过程
	Class clazz2 = 类名.class.getClassLoader().loadClass("全限定名");
	//完成初始化过程
	Class clazz3 = Class.forName("全限定名")
	//此时对象已存在
	Class clazz4 = 对象引用.getClass(); 
  

class装载流程

1、加载 
	加载 class文件
2、链接[验证 准备 解析] 
	验证:如版本号是否正确,语法是否正确
	准备:申请内存,成员变量会给默认值不会赋值我们初始化的初始值
	解析:将二进制的符号引用转换为直接引用
3、初始化
	执行静态代码块
	为类的静态变量进行赋值

类的初始化

JVM执行类的初始化static语句
   为类的静态变量赋值

初始化的详细步骤
    1.如果这个类还没有被加载和链接,那就先进行加载和链接
    2.如果这个类存在父类,并且父类还没有初始化,那就先初始化直接父类    
    3.如果类中存在初始化语句,依次执行初始化语句

class类是什么时候被初始化的呢?

创建类的实例(new xxxClass() Class.newInstance() constructor.newInstance())
访问类中的某个静态变量或对静态变量进行赋值
调用类的静态方法
class.forName("全限定类名")   
完成这类的初始化,也会完成对本类的初始化(接口除外) 
该类是程序引导人口(main入口或test入口)
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/202207/4007.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者