类的初始化顺序、类加载顺序

1.类的加载顺序:.java源文件(磁盘) -> javac编译器 -> .class文件(磁盘) -> java解释器------>JVM内存

2.类的加载(加载.class文件)

1)通过一个类的全限定名获取定义此类的二进制字节流。
2)将这个字节流所代表的静态存储结构转换为方法区运行时数据结构。

​ 3)在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问的入口。

3.类加载器:先识别字节码文件

文件类型:后缀名+魔数(一种文件一个专门魔数)

判断两个类是否相等需要具备2个条件:

​ 1)类名必须完全一致。

​ 2)在类名完全一致的情况下,还需要关注这2个类的类加载器是否一致。如果即使它们的类名完全相同,但是如果它们的类加载器不同,它们也不能是相同的类。

4.类初始化的顺序: 静态变量 静态块 实例变量 实例块 构 造函数

5.类的加载

过程:分为三步

装载阶段(Loading)

​ JVM自带的类加载器。

ClassLoader classLoader = Demo1.class.getClassLoader();
System.out.println(classLoader);

ClassLoader parent = classLoader.getParent();
System.out
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值