静态代码块和构造器的执行顺序
来源:互联网 发布:linux java dlog.path 编辑:程序博客网 时间:2024/05/29 12:41
实例化一个类A的时候的执行顺序,
即:1 . 先执行代码块里的代码;
2 . 然后执行非静态代码块;
3 .最后才真正执行构造器里的代码。
Print.java
1 package com.testStatic; 2 3 public class Print { 4 static{ 5 System.out.println("Print().static{}.....,肯定先执行到我....,比构造器还先执行到..."); 6 } 7 public Print(){ 8 System.out.println("Print(),空构造器。。。"); 9 }10 public void PrintW(){11 System.out.println("Print.PrintW(),我开始打印了。。。。");12 }13 }
StaticTest.java
1 package com.testStatic; 2 3 public class StaticTest { 4 public StaticTest(){ 5 System.out.println("StaticTest.的StaticTest()构造器,"); 6 } 7 static{ 8 System.out.println("StaticTest.static{}.......,我应该是第一个执行,"); 9 }10 {11 System.out.println("StaticTest.的非静态代码块");12 }13 public void M1(){14 Print p = new Print();15 if(p!=null){16 System.out.println("p 已经实例化");17 }else{18 System.out.println("p 还没实例化");19 }20 }21 22 public void M2(){23 Print p2 = new Print();24 p2.PrintW();25 if(p2!=null){26 System.out.println("p2 已经实例化");27 }else{28 System.out.println("p2 还没实例化");29 }30 31 }32 public static void main(String[] args) {33 StaticTest s = new StaticTest();34 if(s!=null){35 System.out.println("s 已经实例化");36 }else{37 System.out.println("s还没实例化");38 }39 System.out.println("=====main()=====");40 s.M1();41 s.M2();42 }43 }
运行结果
StaticTest.static{}.......,我应该是第一个执行,
StaticTest.的非静态代码块
StaticTest.的StaticTest()构造器,
s 已经实例化
=====main()=====
Print().static{}.....,肯定先执行到我....,比构造器还先执行到...
Print(),空构造器。。。
p 已经实例化
Print(),空构造器。。。
Print.PrintW(),我开始打印了。。。。
p2 已经实例化
阅读全文
0 0
- 静态代码块和构造器的执行顺序
- 静态代码块 构造代码块 构造函数 的用法和执行顺序
- 【面相对象】静态代码块、构造代码块和构造函数的执行顺序
- 静态代码块,构造代码块,构造方法的执行顺序和特点
- 静态代码块、构造代码块和构造方法的执行顺序
- java中父类和子类中的静态代码块、非静态代码块和构造器的执行顺序
- Java中静态代码块、非静态代码块和构造函数的执行顺序
- 静态代码块,代码块,构造函数的执行顺序
- 静态代码块、代码块、构造方法的执行顺序
- 构造函数、构造代码块、和静态初始化块的执行顺序
- Java:构造器,构造代码块,静态代码块的执行顺序。
- java中代码块的执行顺序--静态代码块,构造器,普通代码块,构造块,main主函数
- Java 父类,子类各自均有构造器和静态代码块 执行的顺序
- Java类静态代码块、构造块、构造器的执行顺序
- 静态代码块,静态方法,构造方法的执行顺序
- 静态代码块、构造代码块、局部代码块、构造方法的执行顺序
- java 静态代码块,构造代码块,构造方法,普通代码块的执行顺序
- java静态代码块、初始化块和构造方法的执行顺序解析
- caffe yolov2移植
- layer向子页面传递对象
- tensorflow基本概念
- AI challenger 场景分类 PyTorch 迁移学习 Places365-CNNs 启动代码
- 21 视图合并(view merge) --优化主题系列
- 静态代码块和构造器的执行顺序
- 2017全球产品经理大会特邀全球一线实战专家亲自指导
- Python爬虫--爬取赶集网的租房信息
- java servlet 导入 导出excel
- ElasticSearch5.x集群安装及测试
- 获取动态数据到echarts-折线图
- Web UI设计规范、设计细节、设计趋势
- Leetcode||35. Search Insert Position
- excel中插入图片