static静态块、构造函数。主方法的执行顺序!

时间:2022-12-23 19:33:39

1.static

1.1static静态块:

在你类加载的时候就运行了。

1.2.静态变量:

在你类加载的时候就开始声明或者定义了,并且存在于整个程序中,你可以再任何时刻对该值进行修改。

1.3.静态方法:

直接类名点静态方法就可以使用。


2.构造函数

在你定义类对象的时候,不是声明,是定义,也就是 A  a=new A();而不是A a;

3.主方法

方法很多人疑惑主方法也有static修饰,那么它在什么时候运行呢。其实他就在你运行该类主方法的时候才运行,就是在编译器点run。其他时候都不运行!


三者的运行顺序是。static静态块先运行,随后才运行构造方法!运行主方法的话,也是先运行static代码块,再运行主方法。如下代码!

public class StaticTest {
    @Test
    public void staticTest(){
        A a=new A();
    }
}
class A{
 public A() {
 
	System.out.println("C");
} static{ System. out.println( "A") ; } public static void main(String[] args){ System. out.println( "main") ; } static{ System. out.println( "B") ; } } 如果你运行测试方法  staticTest();方法,定义一个类A对象,会先运行两个静态块,再运行构造函数A(),所以结果为

A

B

C

如你运行主方法A类中的main(),会先运行A类的静态块,再运行main(),结果如下

A

B

main

假如,你声明了一个对象,而没有定义,也就是没有初始化:例如

A a; 你声明了一个类对象a,但是没有初始化,所以不会去加载类A,也就不会运行类A的静态块和构造方法!

静态块和静态变量从头到尾只初始化一次,而静态方法你调用几次用几次!