Puock主题已经正式发售,一款颜值在线的多功能WordPress主题,赶快戳我来看看吧

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

2,102次阅读
6条评论

前言

上一篇文章已经说了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?

1
憧憬Licoy
版权声明:本站原创文章,由憧憬Licoy于2016年09月11日发表,共计1396字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(6条评论)
Loading...
管家婆 评论达人LV.1
2016-09-12 12:25:11 回复

想学js

小C博客 评论达人LV.2
2016-09-11 20:51:26 回复

又是代码

柒号淘金 评论达人LV.1
2016-09-11 18:59:44 回复

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