Java中的四种代码块

1.普通代码块:就是直接在一个方法中出现的{}就称为普通代码块

2.构造代码块:构造方法中的代码块

3.静态代码块:使用static关键字声明的代码块称为静态代码块,静态块的主要目的是用来为静态属性初始化

静态块优先于主方法的执行,静态块优先于构造方法的执行,而且只执行一次

4.同步代码块主要出现在多线程中

 

示例:

静态初始化块:使用static定义,当类装载到系统时执行一次。若在静态初始化块中想初始化变量,那仅能初始化类变量,即static修饰的数据成员。 
非静态初始化块:在每个对象生成时都会被执行一次,可以初始化类的实例变量。非静态初始化块会在构造函数执行时,且在构造函数主体代码执行之前被运行。

package com.usoft7;

public class Team {
    public static void main(String[] args) {
        Person p = new Person();
        System.out.println("------------------------------");
        Person p1 = new Person();
    }
}

class Person {
    //构造方法 
    public Person() {
        System.out.println("Person Constructor...");
    }

    //初始化代码块(非静态初始化块)执行完静态块执行构造快之前执行非静态块
    {
        System.out.println("Person Initialization Block...");
    }

    //静态代码块(静态块)最先执行
    static {
        System.out.println("Person Static Block...");
    }
}

运行结果:

Person Static Block...
Person Initialization Block...
Person Constructor...
------------------------------
//再次new一个对象时,静态块不执行,先执行非静态块,在执行构造快
Person Initialization Block...
Person Constructor...


你可能感兴趣的:(Java中的四种代码块)