java --- 代码块

105 阅读2分钟

定义

由一对花括号括起来的,就称为代码块

代码块的分类

  • 局部代码块
  • 构造代码块
  • 静态代码块
  • 同步代码块

局部代码块

1.定义 定义在方法中的代码块,就称为局部代码块

class Demo{
    public void print(){
        // 局部代码块
    }
}
  1. 作用 能够让局部变量,更早的在内存中消失,节省内存空间

构造代码块

  1. 定义 定义在类中,方法外的代码块,就称为构造代码块
class Demo{
    {
        // 构造代码块
    }
    public void print(){
        // 局部代码块
    }
}
  1. 作用
  • 构造代码块是在创建对象的时候执行,并且是优先于构造方法先执行
public class Demo{
    public static void main(String[] args){
        A a = new A();
    }
}
class A{
    {
        System.out.println("构造代码块...");
    }
    public A(){
        System.out.println("构造方法...");
    }
}

image.png

  • 可以将构造方法中的共性内容进行抽取,放入构造代码块中,节省代码的编写 image.png

静态代码块

  1. 定义 被静态修饰的构造代码块,就称为静态代码块
class Demo{
    static {
        // 静态代码块
    }
    public void print(){
    
    }
}
  1. 作用
  • 静态代码块是什么时候进行执行的?

     当.class文件从本地磁盘加载到方法区中形成字节码文件对象的时候,静态代码块会随之执行

  • 为什么静态代码块只会执行一次

     因为字节码文件只加载一次,并且优先于所有的对象存在于内存中,比构造方法先执行

  • 什么时候使用

     给数据进行初始化,当数据只需要被初始化一次的时候,之后可以重复使用的时候,就可以使用静态代码块 -- 比如:用户的个人信息等

image.png

image.png