java学习个人笔记---类成员变量初始化顺序
来源:互联网 发布:黑帽seo软件 编辑:程序博客网 时间:2024/05/19 09:48
类成员变量初始化顺序:
1、定义实例变量时指定初始值;
2、非静态初始化块中对实例变量指定初始值;
3、构造函数对实例变量指定初始值
这3种方式(以下简称1,2,3)初始化的顺序是怎样的呢?
下面根据程序实例分析一下:
public class Javatest_ClassMemberInitOrder {int b;//构造函数对实例变量指定初始值public Javatest_ClassMemberInitOrder(int b){System.out.println("执行构造函数");this.b=b;this.a=b;}//非静态初始化块中对实例变量指定初始值{System.out.println("执行非静态初始化块");a=2;}//定义实例变量时指定初始值int a=3;public static void main(String[] args){Javatest_ClassMemberInitOrder myclass=new Javatest_ClassMemberInitOrder(5);System.out.println("b="+myclass.b);System.out.println("a="+myclass.a);}}
由此可见其中1和2要比3更早执行,那么1与2哪个更早执行呢?
下面我测试一下:
这里要注意了:1与2 的执行顺序与他们在源程序中的排列顺序有关,是按顺序执行的
这里分析一下a=3而为什么不等于2
实际上会被分成两块执行:
int a:创建Java对象时分配内存
a=3:提取到Java类构造器中执行(这里注释掉,其实还是会被系统调用进去),最终的结果a=3
0 0
- java学习个人笔记---类成员变量初始化顺序
- JAVA学习笔记--- 静态变量、成员变量、局部变量及类的初始化顺序
- Java类成员变量的初始化顺序
- java类成员变量的初始化顺序
- Java类成员变量的初始化顺序
- java学习个人笔记---java类总体初始化顺序
- java成员变量初始化顺序
- Java成员变量初始化顺序
- Java学习笔记(成员变量的初始化)
- Java学习笔记(成员变量初始化补充)
- 类成员变量初始化顺序:
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- HDU 3507 Print Article
- CLBeaconRegion(地理区域)的讲解
- 理解java的多态
- Codeforces Round #316 (Div. 2)-D. Tree Requests-DFS+二分+hash
- Spring中的设计模式
- java学习个人笔记---类成员变量初始化顺序
- 大型分布式网站的技术需求
- 这里有一份创业者 “吹牛逼” 指南
- win10操作点点滴滴
- Present
- Linux内核调试方法
- Andorid 有EditText时自动高超软键盘
- 创客(001):生活源于选择
- Android组件之Activity讲解