JAVA中使用“{}”括起来的代码称为代码块,根据代码块定义的位置和关键字不同,代码块可以分为四类:
普通代码块;
构造块;
静态块;
同步代码块。
1、普通代码块
直接在一个方法中出现的“{}”括起来的代码段称之为普通代码块。如下:
class Person{
public static void main(String args[]){
{//普通代码块
int x=10;
}
int x=1000;
}
}
如果不在普通代码块中,而是直接给x赋值为10的话,会和下面的给x赋值1000冲突,编译出错。
2、构造块
直接出现在类里的{}称为构造块,如下代码所示
class Person{
{//构造块
System.out.println("****构造块******");
}
public Person(){
System.out.println("****构造方法*****");
}
}
public class{
public static void main(String args[]){
new Person();
new Person();
new Person();
}
}
输出结果是:
****构造块******
****构造方法*****
****构造块******
****构造方法*****
****构造块******
****构造方法*****
所以,构造块先于构造方法执行,并且每实例化一个对象都会调用一次。
3、静态块,在“{}”前加static关键字的代码块称为静态块。静态块的作用是给静态属性赋初始值,所以静态块会先于主方法,先于构造方法,先于构造块等优先执行。
4、如果在代码块前加上 synchronized关键字,则此代码块就成为同步代码块。同步代码块的格式:
synchronized(同步对象){
需要同步的代码;
}
同步代码块是十分重要的一块,在介绍了线程后会有新的更新。
本文内容基本来自魔乐科技关于java的教程