在Java编程语言中,了解类的初始化顺序是至关重要的,因为这直接影响到代码的执行逻辑。下面我们将详细探讨Java中代码块的执行顺序,包括静态属性、非静态属性、静态代码块、非静态代码块以及构造函数。 让我们回顾一下结论: 1. 当创建一个类的实例时,首先会执行类中的静态属性和静态代码块,按照它们在代码中出现的顺序进行。 2. 然后执行非静态属性和非静态代码块。 3. 调用构造函数来完成对象的初始化。 在没有继承关系的情况下,例如`InitOderTest`类: - 静态属性`STATIC_FIELD`被初始化,输出"静态属性"。 - 接着,执行静态代码块,输出"静态代码块"。 - 然后,非静态属性`field`被初始化,输出"非静态属性"。 - 再次,执行非静态代码块,输出"非静态代码块"。 - 调用无参构造函数,输出"无参构造函数"。 如果存在继承关系,如`InitOderTest`继承自`ParentTest`: - 执行父类`ParentTest`的静态属性和静态代码块,输出"父类-静态属性"和"父类-静态代码块"。 - 然后,执行子类`InitOderTest`的静态属性和静态代码块,输出"静态属性"和"静态代码块"。 - 接着,执行父类的非静态属性和非静态代码块,输出"父类-非静态属性"和"父类-非静态代码块"。 - 调用父类的构造函数,输出"父类—无参构造函数"。 - 再次,执行子类的非静态属性和非静态代码块,输出"非静态属性"和"非静态代码块"。 - 调用子类的构造函数,输出"无参构造函数"。 静态代码块只在类首次加载时执行一次,而与类的实例无关。非静态代码块则在每次创建类的实例时都会执行,因为它与实例的创建过程紧密相关。 通过编写和运行相应的测试代码,我们可以验证这些执行顺序。静态代码块用于初始化静态变量,通常用来设置全局配置或者进行一次性的计算。非静态代码块常用于初始化实例变量,它们在对象创建时运行,可以提供比直接在变量声明中赋值更复杂的初始化逻辑。 理解Java类的初始化顺序对于编写高效、可靠的代码至关重要。正确使用静态和非静态代码块可以帮助我们更好地控制对象的生命周期,从而优化程序性能。在涉及继承时,必须清楚地了解这些顺序,以便正确地处理父类和子类之间的初始化交互。
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 6
- 资源: 938
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)