java-代码块以及代码块执行顺序
来源:互联网 发布:男士护肤品牌 知乎 编辑:程序博客网 时间:2024/06/11 15:55
代码块:
用{}括起来的代码。
根据{}的位置可以分为
局部代码块:方法中,局部位置,作用:限定变量作用范围和生命周期。
构造代码块:在类中方法外(成员位置),用{}括起来的代码。
静态代码块》构造代码块》构造方法
用{}括起来的代码。
根据{}的位置可以分为
局部代码块:方法中,局部位置,作用:限定变量作用范围和生命周期。
构造代码块:在类中方法外(成员位置),用{}括起来的代码。
每次调用构造方法执行前,都会执行构造代码块,
作用:把类中不同构造方法中相同的部分提取出来定义到构造代码块中,以后无论调用哪个构造方法都会执行相同操作。可以理解对对象初始化。
静态代码块:在类中方法外(成员位置),用{}括起来,用static修饰。作用:给类进行初始化。
代码块执行顺序:静态代码块》构造代码块》构造方法
静态代码块:只执行一次
构造代码块:每次创建该类对象,调用构造方法就执行,先于构造方法。
下面通过一个案例进行解析:
package day08;public class DaiMaKuai {static {System.out.println("大家好我是静态代码块!");}{System.out.println("大家好我是构造代码块!");}public DaiMaKuai(){System.out.println("大家好我是构造方法!");}}
入口类:
package day08;public class DaiMaKuaiDemo {static {System.out.println("河南科技大学!");}public static void main(String[] args) {System.out.println("洛阳牡丹甲天下!");//创建DaiMaKuai类对象System.out.println("-------------------------");DaiMaKuai dmk = new DaiMaKuai();System.out.println("-------------------------");DaiMaKuai dmk1 = new DaiMaKuai();}}输出:
河南科技大学!
洛阳牡丹甲天下!
-------------------------
大家好我是静态代码块!
大家好我是构造代码块!
大家好我是构造方法!
-------------------------
大家好我是构造代码块!
大家好我是构造方法!
解析:
通过输出结果可以看出,程序最先加载类执行入口类中的静态代码块打印输出“河南科技大学”
然后接着执行main方法打印后面的程序语句“洛阳牡丹甲天下”,
接着创建DaiMaKuai类的对象加载类执行该类中的静态代码块输出“大家好我是静态代码块!”
接着执行构造代码块输出“大家好我是构造代码块!”
最后执行构造方法输出“大家好我是构造方法!”,
接着又创建一个对象,注意这时静态代码块不再执行(只加载一次),
直接执行构造代码块输出“大家好我是构造代码块!”
最后执行构造方法输出“大家好我是构造方法!”
阅读全文
1 0
- java-代码块以及代码块执行顺序
- static 块以及代码块执行顺序
- Java代码块执行顺序
- Java代码块执行顺序
- Java代码块执行顺序
- java代码块执行顺序
- Java代码块执行顺序
- 代码块执行顺序
- 代码块执行顺序
- 代码块执行顺序
- Java初学者Paulmarkyes---中静态代码块,普通代码块,构造代码块,构造方法先后执行顺序以及区别
- java代码块及代码块的执行顺序
- java 静态代码块 代码块 构造函数执行顺序
- Java继承之间类的加载顺序, 以及代码块、构造块的执行顺序
- Java普通代码块,构造代码块,静态代码块区别,执行顺序的代码实例
- Java类代码块执行顺序
- Java代码块的执行顺序
- Java类代码块执行顺序
- 守护进程
- mqtt协议
- mybaitis神奇的地方
- 错误:Unsupported major.minor version 51.0 解决方案
- leetcode 94. Binary Tree Inorder Traversal
- java-代码块以及代码块执行顺序
- “互联网+”只是火了,如何推行仍是个问题
- C++ STL
- SQL:union和union all的区别
- MongDB学习2
- 基础练习 十六进制转八进制
- mt7610u mt7601u wifi 调试
- 马自达CX-5,中控台的点烟器没电
- H5研究一:定制一个最简单的H5 视频播放器<video></video>