博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java静态无名函数(静态初始化块)与java的运行流程
阅读量:6224 次
发布时间:2019-06-21

本文共 902 字,大约阅读时间需要 3 分钟。

public class Test {

public Test() {

System.out.println(" 构造函数");

@1:静态初始化块
static

{

System.out.println("static{}");

@2:初始化块
{

System.out.println("{}");

}

public static void main(String[] args) {

 

System.out.println("main()");

}

}

运行结果为:

static{}

main() 
程序执行顺序为:静态初始化块static{}-->初始化块{}-->构造函数constructor; 
注意:即使没有生成new此实例或此类是否有static main()函数,静态初始化块static{}也照样会运行。
在继承的情况下:

class Test{

Test(){

System.out.println("父类构造函数");

}

static{

System.out.println("父类静态初始化块");

 

}

{

System.out.println("父类初始化块");

}

}

public class  TestChild  extends Test{

public TestChild() {

System.out.println("子类构造函数");

}  

static

{

System.out.println("子类静态初始化块");

}

{

System.out.println("子类初始化块");

}

public static void main(String[] args) { 
new TestChild();

}

}

 

运行结果:

 

父类静态初始化块

子类静态初始化块

父类初始化块

父类构造函数

子类初始化块

子类构造函数

 

 

程序运行顺序为:父静态-->子静态-->父初始化及构造-->子初始化及构造;

注意:初始化块和构造是接连运行的,不会父类子类交替. 

转载于:https://www.cnblogs.com/wonglou/p/3735167.html

你可能感兴趣的文章
【Android开发】多媒体应用开发-使用SoundPool播放音频
查看>>
Node.js 之对象池
查看>>
Android 随笔—— ConstraintLayout 效率爆表的技巧
查看>>
学习点和面试点
查看>>
自己封装一个可以随意删减 没用的资源文件的工具
查看>>
每一个程序员需要了解的10个Linux命令
查看>>
JobScheduler之超时检查
查看>>
最近找工作面试那些事儿(6月)
查看>>
简单VC内存检测
查看>>
Electron任务栏图标定制分析
查看>>
记一次简书图片403(hexo中简书图片迁移到阿里云oss)
查看>>
vue 2.0 路由切换以及组件缓存源代码重点难点分析
查看>>
清凉一夏,“极客时间”陪你过暑假
查看>>
掘金首秀
查看>>
vue面试整理
查看>>
React基础(一)
查看>>
PageRank 算法随记
查看>>
喜马拉雅 FM--- [ Java 高级开发] [ Java 架构师] [iOS 架构师] 招聘啦
查看>>
软能力那点事,你知多少
查看>>
前端小知识10点(2019.5.28)
查看>>