java 代码块_Java构造代码块及执行优先顺序

前言

上一篇文章已经说了Java中的构造方法,它是在创建对象的时候JVM自动会执行的一种方法。另外在Java中还有一个名为“构造代码块”的东西,他和构造方法一样都是在创建对象的时候会自动执行的,构造代码块要写在与构造方法同一级。

代码块的类别有如下三种:

构造代码块

局部代码块

静态代码块

构造代码块为其中一种。

代码

要想懂得起,还是要看看代码,如下:

public class StructureCodeBlock {

//构造代码块

{

System.out.println("This is StructureCodeBlock");

}

public static void main(String[] args){

StructureCodeBlock s = new StructureCodeBlock();

}

}

优先级

若在一个类中同时含有成员变量、构造方法、构造代码块的时候,优先顺序如下:

成员变量 | 构造代码块>构造方法

3e42817dfe516d1e3efd56c8ce6728c6.png 但是Why?接着往下看:

Java编译器编译一个Java源文件的时,会把成员变量的声明语句提至一个类的最前端。

成员变量的初始化以及代码块的代码都是会被移至构造方法中去执行。

成员变量的初始化与构造代码块的代码是按照当前代码的顺序去执行的,构造方法中的原代码会最后进行执行。

可以看看如下代码就懂了。

public class StructureCodeBlock {

//成员变量

public int num = 1000;

//构造方法

public StructureCodeBlock(){

this.num = 3000;

}

//构造代码块

{

this.num = 2000;

}

public static void main(String[] args){

StructureCodeBlock s = new StructureCodeBlock();

System.out.println(s.num);

}

}

最终的运行结果为:3000

后记

前方的路程遥远曲折坎坷,问问自己:Are you ready?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值