静态代码块、构造代码块、构造函数
来源:互联网 发布:口腔医学网络教育 编辑:程序博客网 时间:2024/06/05 01:01
原址:http://wiki.jikexueyuan.com/project/java-enhancement/java-twelve.html
package com.tutorialspoint;public class Test { /** * 构造代码 */ { System.out.println("执行构造代码块..."); System.out.println("222222"); } /** * 无参构造函数 */ public Test(){ System.out.println("执行无参构造函数..."); } /** * 有参构造函数 * @param id id */ public Test(String id){ System.out.println("执行有参构造函数..."); } public static void main(String[] args) { new Test(); System.out.println("----------------"); new Test("1"); } }
Test.class
编译后的:
public class Test{ public Test() { System.out.println("执行构造代码块..."); System.out.println("222222"); System.out.println("执行无参构造函数..."); } public Test(String id) { System.out.println("执行构造代码块..."); System.out.println("222222"); System.out.println("执行有参构造函数..."); } public static void main(String[] args) { new Test(); System.out.println("----------------"); new Test("1"); }}
结论1:
从上面的运行结果可以看出在 new 一个对象的时候总是先执行构造代码,再执行构造函数,但是有一点需要注意构造代码不是在构造函数之前运行的,它是依托构造函数执行的。
五、 静态代码块、构造代码块、构造函数执行顺序
从词面上我们就可以看出他们的区别。
1)静态代码块,静态,其作用级别为类,
2)构造代码块、构造函数,构造,其作用级别为对象。
1、静态代码块,它是随着类的加载而被执行,只要类被加载了就会执行,而且只会加载一次,主要用于给类进行初始化。
2、构造代码块,每创建一个对象时就会执行一次,且优先于构造函数,主要用于初始化不同对象共性的初始化内容和初始化实例环境。
3、构造函数,每创建一个对象时就会执行一次。同时构造函数是给特定对象进行初始化,而构造代码是给所有对象进行初始化,作用区域不同。
通过上面的分析,他们三者的执行顺序应该为:静态代码块 > 构造代码块 > 构造函数。
package com.tutorialspoint;public class Test { /** * 静态代码块 */ static{ System.out.println("执行静态代码块开始"); System.out.println("=============="); System.out.println("执行静态代码块结束"); } /** * 构造代码 */ { System.out.println("执行构造代码块..."); } /** * 无参构造函数 */ public Test(){ System.out.println("执行无参构造函数..."); } /** * 有参构造函数 * @param id id */ public Test(String id){ System.out.println("执行有参构造函数..."); } public static void main(String[] args) { new Test(); System.out.println("----------------"); new Test("1"); } }
执行静态代码块开始==============执行静态代码块结束执行构造代码块...执行无参构造函数...----------------执行构造代码块...执行有参构造函数...
阅读全文
0 0
- 父类、静态构造代码块、构造代码块、构造函数
- 构造函数、构造代码块、静态成员、静态代码块
- 构造函数、构造代码块与静态代码块
- Java中的构造函数、构造代码块、静态代码块
- 构造函数,构造代码块,静态代码块
- 构造代码块、构造函数、静态代码块 学习笔记
- 静态代码块 构造代码块 构造函数 区别
- Java静态代码块、构造函数、构造代码块
- 静态代码块、构造代码块、构造函数
- Java静态代码块、构造代码块、构造函数
- Java静态代码块、构造代码块、构造函数
- 静态代码块、构造代码块、构造函数
- 静态代码块,构造代码块与构造函数
- 构造块/静态代码块
- 静态代码块,普通代码块,同步代码块,构造代码块和构造函数解
- 静态代码块,非静态代码块,构造函数
- 普通代码块 静态块 构造块
- java静态代码块,代码块和构造函数
- C#梳理【可空类型Nullable】
- LeetCode 18. 4Sum
- ArrayList源码学习(1.1)
- Thymeleaf教程 (八) 模板布局(thymeleaf的主要技术优势)
- blktrace
- 静态代码块、构造代码块、构造函数
- 逆光 (摄影术语)
- 采用python进行Android的多渠道打包
- so就 (二分答案 dp 贪心)
- 阿里云视频点播解决方案使用教程
- 斐波那契数列求和问题
- 计算程序运行时间 C语言
- C#WinForm的 Window 消息大全
- Android Dagger2入门详解(三)