Java中4种代码块

[align=center][b]Java的4种代码块[/b][/align]
[color=red]一、普通代码块[/color]

  直接在一个方法中出现的{}就称为普通代码块,也叫局部代码块,出现在局部位置,作用主要是限定变量的生命周期。例子程序如下:

public class CodeDemo01{

  public static void main(String[] args){

  //普通代码块

   {

   int x = 10;

  System.out.println("x=" + x);

   }

   int x = 100;

   System.out.println("x=" + x);

  }

}

[color=red]二、构造代码块[/color]

  直接在类中成员位置定义的没有加static关键字的代码块{}称为构造代码块,每次调用构造方法执行前都会执行构造代码块。作用:可以把多个构造方法中共同代码放到一起,对对象进行初始化。例子程序如下:

public class CodeDemo02{

  public CodeDemo02(){

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

  }

  //这是构造代码块,而且在new对象时,构造代码块优先构造方法执行

  {

   System.out.println("=========这是构造块!=========");

  }

  public static void main(String[] args){

   new CodeDemo02();

   new CodeDemo02();

  }

}

[color=red]三、静态代码块[/color]

  使用static关键字声明的代码块称为静态代码块,静态块的主要目的是用来为静态属性初始化,静态代码块只执行一次。例子程序如下:

public class CodeDemo03{

  static{

  System.out.println("这是主类中的静态代码块!");

  }

  public static void main(String[] args){

   new Demo();

   new Demo();

   new Demo();

  }
}

class Demo{

  static{

   System.out.println("这是Demo类中的静态代码块!");

  }

  {

   System.out.println("这是Demo类中的构造块!");

  }

  public Demo(){

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

  }
}

  静态块优先于主方法的执行,静态块优先于构造方法的执行,而且只执行一次!

以上三种代码:
面试题:静态代码块,构造代码块,构造方法的执行顺序?
静态代码块---构造代码块---构造方法
静态代码块:只执行一次。
构造代码块:每次调用构造方法执行前都会执行。

[color=darkred]补充:看以下代码写执行结果[/color]

class Fu{

static{
System.out.println("静态代码块Fu");
}

{
System.out.println("构造代码块Fu");
}

public Fu(){
System.out.println("构造方法Fu");
}
}

class Zi extends Fu{
static{
System.out.println("静态代码块Zi");
}

{
System.out.println("构造代码块Zi");
}

public Zi(){
System.out.println("构造方法Zi");
}
}

public class ExtendsTest {
public static void main(String[] args) {
Zi zi = new Zi();
}
}

[color=red]执行结果:
静态代码块Fu
静态代码块Zi
构造代码块Fu
构造方法Fu
构造代码块Zi
构造方法Zi
分析:执行main方法时,发现Zi类,类加载器去加载Zi类,发现继承Fu类,先加载Fu类静态代码块(静态随着类加载,然后加载子类静态代码块)。
new Zi();先执行Fu类初始化(成员默认初始化,显示初始化,构造方法初始化)构造代码块和构造方法,然后执行子类构造代码块和构造方法。[/color]

[color=red]四、同步代码块[/color]

  同步代码块主要出现在多线程中。

[color=red]未完待续(代码块在继承中的执行顺序)..........[/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值