黑马程序员_代码块

来源:互联网 发布:ps ef grep java 编辑:程序博客网 时间:2024/06/05 00:40

------- android培训、java培训、期待与您交流! ----------


定义:代码块指的是使用"{}"括起来的一段代码,根据代码块存在的位置可以分为4:

普通代码块;

构造代码块;

静态代码块;

同步代码块

1、普通代码块

普通代码块就是直接定义在方法或语句中定义的代码块:

public void show(){

普通代码块

}

2、构造代码块

直接写在类中的代码块:

优先于构造方法执行,每次实例化对象之前都会执行构造代码块。

 

Eg

public class Demo {

    {

  System.out.println("我是构造代码块");

    }

    public Demo(){

System.out.println("我是构造方法");

    }

    public static void main(String[] args) {

  Demo d1  = new Demo();

  Demo d2  = new Demo();

    }

}

3、静态代码块

使用static 修饰的构造代码块:

优先于主方法执行,优先于构造代码块执行,不管有创建多少对象,静态代码块只执行一次,可用于给静态变量赋值;


//测试各代码块的优先级

public class Demo13 {

Demo13(){

System.out.println("我是构造方法!");

}

{

System.out.println("我是构造代码块!");//实例化对象的时候才会去调用!

}

static{

System.out.println("我是静态代码块!");

}

public static void main(String[] args) {

new Demo13();

new Demo13();//再次创建对象,证明无论创建几次对象,静态代码块都只执行一次

System.out.println("我是普通代码块!");

}

}

 

输出:

我是静态代码块!

我是构造代码块!

我是构造方法!

我是构造代码块!

我是构造方法!

我是普通代码块!

根据以上输出结果可得:

优先级顺序:静态代码块  > 构造代码块 > 普通代码块


4、同步代码块
synchronized(obj)
{
//obj表示同步监视器,是同一个同步对象
/**.....
TODO SOMETHING
*/
}

0 0
原创粉丝点击