Java-14 代码块

代码块(局部代码块,构造代码块,静态代码块,同步代码块):Java中,使用{}括起来的代码被称为代码块

1.局部代码块:在方法中出现

 作用:限定变量的生命周期,及早释放,提高内存利用率,在同一个类出现的时候,多个局部代码块的执行顺序是自上而下的。

2.构造代码块:在类中方法外出现

      作用:多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行

3.静态代码块:在类中方法外出现,并加上static修饰

  作用:用于给类进行初始化,在加载的时候就执行,并且只执行一次

  注意事项:静态代码块在一个类中的顺序,不影响它的执行顺序,但是多个静态代码块在一个类中,
他们之间的执行顺序是自上而下的

4.执行顺序:局部代码块 ---> 静态代码块 ---> 构造代码块 ---> 构造方法

package com.shujia.day1;
//执行顺序:局部代码块 ---> 静态代码块 ---> 构造代码块 ---> 构造方法

class Code{
    //静态代码块,对类进行初始化,只能调用一次,多个静态代码块调用顺序自上而下
    static{
        System.out.println("这是静态代码块1");
    }
    //构造代码块,每次调用都执行,在构造方法前执行
    {
        System.out.println("这是构造代码块");
    }
    //此类的无参构造方法
    Code(){
        System.out.println("这是Code的无参构造方法");
    }
    //静态代码块,多个静态代码块调用顺序自上而下
    static{
        System.out.println("这是静态代码块2");
    }
}
public class CodeDemo {
    public static void main(String[] args) {
        //局部代码块,在方法中出现,限定变量的生命周期,及早释放,提高内存利用率,多个局部代码块的执行顺序是自上而下的
        {
            int x =10;
            System.out.println(x);
        }

        {
            int y =20;
            System.out.println(y);
        }
        Code code=new Code();
        System.out.println("======================二次调用===================");
        Code code2=new Code();
    }
}

运行结果:

题目:

class Student{

    static {
        System.out.println("这是在Stduent类中的静态代码块"); // 1
    }

    {
        System.out.println("这是在Student类中构造代码块"); // 2
    }
    Student(){
        System.out.println("这是在Student类中的无参构造的方法"); // 3
    }
}

// 4 5 1 2 3
public class StudentDemo {

    static {
        System.out.println("这是在StudentDemo中的静态代码块"); // 4
    }

    public static void main(String[] args) {
        System.out.println("进入到main方法"); // 5
        Student s = new Student();

    }
}
posted @ 2021-09-27 21:02  艺术派大星  阅读(60)  评论(0)    收藏  举报
levels of contents