定义
由一对花括号括起来的,就称为代码块
代码块的分类
- 局部代码块
- 构造代码块
- 静态代码块
- 同步代码块
局部代码块
1.定义
定义在方法中的代码块,就称为局部代码块
class Demo{
public void print(){
// 局部代码块
}
}
- 作用 能够让局部变量,更早的在内存中消失,节省内存空间
构造代码块
- 定义 定义在类中,方法外的代码块,就称为构造代码块
class Demo{
{
// 构造代码块
}
public void print(){
// 局部代码块
}
}
- 作用
- 构造代码块是在创建对象的时候执行,并且是
优先于构造方法先执行
public class Demo{
public static void main(String[] args){
A a = new A();
}
}
class A{
{
System.out.println("构造代码块...");
}
public A(){
System.out.println("构造方法...");
}
}
- 可以将构造方法中的共性内容进行抽取,放入构造代码块中,节省代码的编写
静态代码块
- 定义 被静态修饰的构造代码块,就称为静态代码块
class Demo{
static {
// 静态代码块
}
public void print(){
}
}
- 作用
- 静态代码块是什么时候进行执行的?
当.class文件从本地磁盘加载到方法区中形成字节码文件对象的时候,静态代码块会随之执行
- 为什么
静态代码块只会执行一次?
因为字节码文件只加载一次,并且优先于所有的对象存在于内存中,比构造方法先执行
- 什么时候使用
给数据进行初始化,当数据只需要被初始化一次的时候,之后可以重复使用的时候,就可以使用静态代码块 -- 比如:用户的个人信息等