static相关--------方法变量:加载顺序

本文详细解析了Java中静态(static)及非静态成员变量、方法、初始化块等元素的加载顺序。从父类到子类,从静态到非静态,帮助读者理解Java运行时的加载流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一说到static就会涉及到下面内容的加载顺序,下面的“方法+变量”有5类,再牵涉到“子类”、“父类”就有10类参与比较:

   方法:

   static初始化块、main方法(带static){static一般方法、构造方法、一般成员方法}、一般初始化块    

  变量:

   static变量、 一般成员变量

注:蓝色部分为一类


加载顺序:

1.   父类的static成员变量;

2.   父类的static代码块;

3.   子类的static成员变量;

4.   子类的static代码块;

加载原则:先加载变量,再加载方法;先加载父类,再加载子类;

变量先于方法执行,这个我目前通过“写java代码打印输出”验证不了;

5.   父类的一般成员变量;

6.   父类的main方法... ... ... ...

       main方法里有调用{static一般方法、构造方法、一般成员方法}的逻辑,他们就顺序执行;不调用不执行;

7.   子类的一般成员变量;

8.   子类的main方法... ... ... ...

       main方法里有调用{static一般方法、构造方法、一般成员方法}的逻辑,他们就顺序执行;不调用不执行;


说明:蓝色部分都是普通方法,调用了才加载执行,不调用不执行,所以谈不上加载顺序。

           java方法里写里书写它们的顺序就是它们的加载顺序;

          另外,“一般初始化块 ”都是在new一个它所在的类对象后才执行;不new一个对象不执行;

          new一个类对象后,加载顺序:1. 一般初始化块      2. 构造方法























   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值