前言: 在本教程中,IT培训网小编将告诉大家Java 中各种初始化块(如静态块、初始化块和构造函数)的执行顺序是什么。
在本教程中,IT培训网小编将告诉大家 Java 中各种初始化块(如静态块、初始化块和构造函数)的执行顺序是什么。
大多数时候,在面试中会问这样一个问题,以测试候选人对 Java 基础的基本知识。
让我们开始教程。
Java中各种初始化块的概述
在 Java 中,我们有各种类型的初始化块,它们是静态块、初始化块和实例初始化块。然后有一个构造函数。
让我们对每种类型的块做一个简单的介绍。
Java中的静态初始化块
每当类第一次在 JVM 中加载时,静态初始化块就会运行。
初始化块
初始化块类似于静态初始化块,但其中没有使用静态关键字。它只是 { start 和 end } 大括号内的一个块。初始化块将按照它们在程序中出现的顺序运行。
简单地说,它包含在创建实例时始终执行的代码。初始化块的主要目的是声明或初始化类中存在的各种构造函数的公共部分。
实例初始化块
实例初始化块是在初始化类时和调用构造函数之前执行的块。主要用于初始化实例变量。这种类型的块在构造函数之前执行,并且在每次创建类的对象时运行。
这些是Java中的各种初始化块,现在我们将讨论这些块在Java程序中的执行顺序是什么。
但是这里要注意的重要一点是,如果这些是两个或多个静态/初始化程序块,那么它们将按照它们在源代码中出现的顺序执行。
让我们通过一个例子来理解所有这些概念。
package com.initializationializationblocks;
public class InitializationOrderExample {
InitializationOrderExample(int x) {
System.out.println("ONE argument constructor");
}
InitializationOrderExample() {
System.out.println("No argument constructor");
}
static {
System.out.println("1st static initialization");
}
{
System.out.println("1st instance initialization");
}
{
System.out.println("2nd instance initialization");
}
static {
System.out.println("2nd static initialization");
}
public static void main(String[] args) {
new InitializationOrderExample();
new InitializationOrderExample(800);
}
}
输出
1st static initialization
2nd static initialization
1st instance initialization
2nd instance initialization
No argument constructor
1st instance initialization
2nd instance initialization
ONE argument constructor
结论
这就是本教程的全部内容。希望您喜欢本教程并能够理解 Java 中的各种初始化块及其执行顺序。如果大家想了解更相关知识,不妨来关注一下IT培训网的Java教程,里面的课程内容细致全面,通俗易懂,适合没有基础的小伙伴学习,希望对大家能够有所帮助哦。
文章出自:http://qh.itpxw.cn/peixun/software/2022121663.html
文章标题:各种初始化块Java执行顺序
免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员
用户级别:10
机构名称:IT培训网
联 系 人:罗老师
联系电话:13783581536
联系手机:13783581536
在线客服:
在 线 QQ:
电子邮件:
网站域名:http://www.itpxw.cn
注册时间:2016-07-18 11:07
最后登录:2024-02-20 13:02
Java定义方法的格式是什么?IT培训网小编来告诉大家。所谓方法...
大家在Java教程中会学到关于Java消息推送的知识,那么,Java消息...
常用的Java日期格式转换有哪些?IT培训网小编来告诉大家。 1...
Java创建对象数组的方法是什么?IT培训网小编来告诉大家。Ja...