变量初始化顺序(不考虑继承关系)
2013-03-24 10:00
260 查看
一、变量初始化顺序:
(1)在加载类时(第一次实用类),为类中的静态成员变量分配存储空间,并赋予默认值;
(2)执行静态成员变量的初始化。静态成员变量的初始化有两种:在声明时直接初始化与静态初始化块。两种初始化方式按照在类中出现的顺序来执行
(3)如果创建了类的对象,便在堆中为类的实例分配内存空间,实例变量被初始化为默认值
(4)执行实例变量的初始化操作。实例变量的前两种初始化方式:声明时直接初始化与初始化块,这两种初始化方式会按照在类中出现的顺序(声明的顺序)来执行
(5)执行类的构造器。
二、jvm载入某个类的条件:
(1)使用了该类的静态成员变量
(2)调用了该类的静态方法
(3)生成了该类的实例
(4)加载子类
(5)发射(Class.forName("类名"))
(1)在加载类时(第一次实用类),为类中的静态成员变量分配存储空间,并赋予默认值;
(2)执行静态成员变量的初始化。静态成员变量的初始化有两种:在声明时直接初始化与静态初始化块。两种初始化方式按照在类中出现的顺序来执行
(3)如果创建了类的对象,便在堆中为类的实例分配内存空间,实例变量被初始化为默认值
(4)执行实例变量的初始化操作。实例变量的前两种初始化方式:声明时直接初始化与初始化块,这两种初始化方式会按照在类中出现的顺序(声明的顺序)来执行
(5)执行类的构造器。
二、jvm载入某个类的条件:
(1)使用了该类的静态成员变量
(2)调用了该类的静态方法
(3)生成了该类的实例
(4)加载子类
(5)发射(Class.forName("类名"))
相关文章推荐
- 类在继承关系上的初始化的顺序问题
- java中涉及继承关系的初始化顺序
- 继承关系的类初始化和实例化的顺序
- Java类继承关系中的初始化顺序
- 多重继承关系的初始化顺序
- 复习一下Java中继承关系的类的初始化顺序
- Java第11次作业:什么是继承?继承的好处?什么是覆写?super()?构造代码块?子父类初始化顺序? 抽象类能用final声明吗?final关键字声明类 方法 变量以及全局常量?抽象类的构造方法?
- Java中构造代码块和成员变量初始化的顺序关系
- 继承关系的类初始化和实例化的顺序
- Java中构造代码块和成员变量初始化的顺序关系2之 Cannot reference a field before it is defined
- Swift - 父子继承关系的初始化方法调用顺序
- JAVA final 、super 关键字以及继承关系中父类与子类实例变量初始化的 理解
- 【深入理解JVM】:Java类继承关系中的初始化顺序
- 一个关于继承关系中静态快、成员变量、构造体代码的执行顺序的Java代码
- Java程序员从笨鸟到菜鸟(五)JVM类继承关系的初始化顺序
- Java类继承关系中的初始化顺序
- JAVA继承关系中的初始化顺序
- Java类继承关系中的初始化顺序
- Java继承关系中类的初始化顺序
- 变量在继承关系中的赋值顺序