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

4,589次阅读
6 条评论

共计 953 个字符,预计需要花费 3 分钟才能阅读完成。

前言

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

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

  • 构造代码块
  • 局部代码块
  • 静态代码块

构造代码块为其中一种。

代码

要想懂得起,还是要看看代码,如下:
public class StructureCodeBlock {
	// 构造代码块
	{System.out.println("This is StructureCodeBlock");
	}
	public static void main(String[] args){StructureCodeBlock s = new StructureCodeBlock();
	}
}

优先级

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

Java 构造代码块及执行优先顺序 但是 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?
正文完
使用官方微信小程序体验更多功能
post-qrcode
 1
憧憬Licoy
版权声明:本站原创文章,由 憧憬Licoy 于2016-09-11发表,共计953字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(6 条评论)
管家婆 评论达人 LV.1
2016-09-12 12:25:11 回复

想学js

 Windows  Opera  中国北京北京市联通
小C博客 评论达人 LV.1
2016-09-11 20:51:26 回复

又是代码

 Windows  Chrome  中国浙江省杭州市电信
柒号淘金 评论达人 LV.1
2016-09-11 18:59:44 回复

又是代码,你……打字都挂效果了??你太牛了

 Windows  Chrome  中国河北省邯郸市电信

憧憬点滴记忆

公告
Puock是一款基于WordPress开发的高颜值自适应开源主题,支持白天与黑夜模式、无刷新加载等功能。
文章搜索
憧憬点滴记忆
憧憬点滴记忆
Licoy's Blog关注互联网及软件IT技术的个人博客
今日一言
-「
热门文章
《活着》 – 人所体现生命的价值

《活着》 – 人所体现生命的价值

前言 在新年目标中为了定了一个读书计划,计划在 18 年中阅读 20 本各方面的书籍,目前阅读计划已经阅读了两...
Chatroulette-全世界随机视频聊天网站

Chatroulette-全世界随机视频聊天网站

介绍 Chatroulette 被人们叫做“聊天轮盘”是由一个 17 岁俄国高中生创立的随机视频聊天网站。该网...
Puock主题常见问题汇总

Puock主题常见问题汇总

前言 最近经常会收到小伙伴的一些老生常谈过的的问题,鉴于有些小伙伴因为网络原因无法及时访问到 Github 上...
SpringCloud使用Zuul出现“Forwarding error”错误解决方法

SpringCloud使用Zuul出现“Forwarding error”错误解决方法

起因 博主在使用 zuul 的时候,所有的配置都是配置完全了的,但是只要一访问服务就出现 500,然后查看控制...
岛屿数量计算中的DFS和BFS的应用

岛屿数量计算中的DFS和BFS的应用

前言 计算岛屿数量是在由 ’0’ 与 ’1’ 的二维网格中寻找...
最新评论
憧憬Licoy 憧憬Licoy 暂时不做友联申请了
憧憬Licoy 憧憬Licoy 暂时不做友联申请了
YanQS YanQS 名称:YanQS's Blog 网址:https://yanqs.me/
ygtg ygtg 很好 :beer:
ssdfg ssdfg 用户中心太简陋了! :grin:
mp4网 mp4网 申请友链 名称:mp4网 地址:http://mp4wang.cc 描述:多来看看
xf xf 感谢作者的分享
朵朵 朵朵 过来看看
热评文章