1、普通代码块
直接写在方法中的代码块就是普通代码块
示例:
public class Demo1{
public static void main(String args[]){
{
//普通代码块
String info = "局部变量-1";
System.out.println(info);
}
String info = "局部变量-2";
System.out.println(info);
}
}
2、构造块
构造块是在类中定义的代码块,在创建对象时被调用,优于构造方法执行。
示例:
public class Demo2{
public static void main(String args[]){
Demo demo = new Demo();
}
}
class Demo{
public Demo() {
System.out.println("构造方法");
}
{
//构造块
System.out.println("构造块");
}
}
输出结果:
构造块
构造方法
3、静态代码块
在类中使用static声明的代码块称为静态代码块。静态代码块在第一次使用的时候被调用(创建对象),只会执行一次,优于构造块执行。在项目开发中,通常会使用静态代码块来初始化只调用一次的数据。
示例:
public class Demo3{
public static void main(String args[]){
Student s = new Student();
Student s1 = new Student();
Student s2 = null;//声明为null就什么也不执行
}
}
class Student{
public Student() {
System.out.println("构造方法");
}
{
System.out.println("我是构造代码块");
}
static {
System.out.println("我是静态代码块");
}
}
输出结果:
我是静态代码块
我是构造代码块
构造方法
我是构造代码块
构造方法
4.同步代码块(用于多线程)