代码块:静态-构造-局部

-静态代码块

 随着类的加载而加载,并且只被加载一次,一般用于项目的初始化。

 位置是在成员位置 +  作用用来只加载一次并且加载的早 

-构造代码块

 位置是在成员位置+优先执行构造代码块再执行构造方法+用来提取构造方法的共性

构造代码块特点:在触发构造方法前先去执行构造代码块  +  用来抽取构造方法的共性  +  位置是在成员位置

-局部代码块

位置是在局部位置+作用用来控制变量的作用范围

局部代码块特点:触发了方法   +  用来控制变量的作用范围   + 位置是在方法里

三者执行顺序

静态代码块>构造代码块>局部代码块

代码演示:

package cn.tedu.staticdemo;
/**
*@author 作者:李强
*@email 邮箱:1435430561@qq.com
* 日期: 2020年5月11日
*/
//测试静态代码块和构造代码块,构造方法,局部代码块的执行顺序
public class Test7_Black {
    public static void main(String[] args) {
        Student s = new Student();
        Student s1 = new Student();
        s.say();
    }

}
class Student{
    //静态代码块
    static {
        System.out.println("这是静态代码块");
    }
    
    //构造代码块
    {
        System.out.println("这是构造代码块");
    }
    
    //构造方法
    public Student() {
        System.out.println("无参构造方法");
        {
            System.out.println("无参构造方法的局部代码块");
        }
    }
    
    //局部代码块
    public void say() {
        System.out.println("say方法");
        {
            System.out.println("这是局部代码块");
        }
    }
    
}

结果:

原文地址:https://www.cnblogs.com/liqbk/p/12871983.html