当一个类被 new 一个对象的时候,构造方法就被调用了,而当类被加载的时候,静态模块就被调用了,所以如果想在main 方法被调用之前就输出相关语句,可以用静态模块的方法,下面给了一个例子演示静态模块和构造方法,以及 main 方法依次被调用的顺序:

package javaTest;

import java.util.Scanner;

public class javaTest {
	public javaTest(){
		System.out.println("hello");
	}
	 static {
		System.out.println("world");
	}
	public static void main(String[] args){
		System.out.println("你好世界!");
		new javaTest();
	}
}



输出结果为:

world

你好世界!

hello

可以看出静态模块的内容首先被输出,是在 main 方法之前输出,而main 方法第二个被输出,最后的是构造方法,因为 new 了一个 JavaTest  的一个实例,调用了构造方法,如果没有new 一个实例,那么构造方法将不会被调用

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐