博客阅读笔记-类的加载过程

本文详细阐述了Java中类从加载到初始化的整个过程,包括加载、验证、准备、解析和初始化各个阶段的具体行为。通过实例展示了静态变量和成员变量的初始化顺序,以及final和static关键字的影响。同时,解释了类加载的时机以及静态块的执行时间。
摘要由CSDN通过智能技术生成

看那篇文章记的笔记

文章链接在此:https://blog.csdn.net/xqnode/article/details/106341050

main方法在new一个对象的时候是在JVM中被加载的过程,如下:
加载:将类的class文件讲到内存,并为之创建一个java.lang.Class对象
链接:
验证:保证加载类的正确性
准备:为静态变量分配内存并设置默认初始值
解析:把内中的符号引用转化为直接引用
符号引用:引用的目标不一定加载到内存中
直接引用:指向的目标一定是加载进来的
初始化:为类的静态变量依次赋予初始值(这里指的是代码中的值),包括静态代码也会执行,这个阶段会执行类的构造函数,JVM负责把类的成员变量进行初始化赋值

成员变量在对象实例化之前初始化

类加载最终产品是位于堆的Class对象封闭了类在方法区内的数据结构,并向Java程序员提供了访问方法区内的数据结构的接口

如果该类还未被加载到内存中则JVM会通过加载、链接(验证、准备、解析)、初始化

顺序:加载、验证、准备、初始化确定,解析则不确定
因Java支持动态绑定(多态),运行时才知道最终对象的引用,所以解析可能发生在初始化之后
虽然它们是按顺序开始,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值