变量的初始化顺序

原创 2015年11月20日 17:34:32

java中子类和父类有很多变量,那么你知道它们的初始化顺序是什么样的吗?

对于同一个类中变量的初始化顺序是:先静态变量后对象变量最后构造器

对于有父类的类中变量初始化顺序是:先父类静态变量,再子类静态变量,再父类对象变量、父类构造器最后是子类对象变量子类构造器。


类变量:即时静态变量,static修饰。                               

对象变量:即是普通常见的变量,非static修饰,在创建对象时才会初始化对象变量。


这个很好理解,对于类变量(静态变量,static修饰),这个是在类加载过程中初始化的(参考上一篇文章,类加载过程--最后一部分内容),会先初始化父类类变量,在初始化子类类变量,这个是类加载的过程,只有类加载了我们才能创建对象,所以类变量的初始化在对象变量之前,且父类在前,子类在后。对于对象变量构造器,记得一句话:先父后子,先对象变量后构造器。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++成员变量的初始化顺序问题

 可作为程序员面试宝典第五版119页解析 问题来源: 由于面试题中,考官出了一道简单的程序输出结果值的题:如下,   [cpp] view plaincopyprint?   ...

java静态/动态成员变量、初始化块,父类/子类构造函数执行顺序问题

package job;    public class TestConsSeq {        public static&#...

C++成员变量的初始化顺序问题

问题来源: 由于面试题中,考官出了一道简单的程序输出结果值的题:如下, [cpp] view plaincopyprint? class A ...

java中的静态变量、静态方法与静态代码块详解与初始化顺序

我们知道类的生命周期分为装载、连接、初始化、使用和卸载的五个过程。 其中静态代码在类的初始化阶段被初始化。 而非静态代码则在类的使用阶段(也就是实例化一个类的时候)才会被初始化。 静态变...

C++成员变量的初始化顺序

C++成员变量的初始化顺序

java静态/动态成员变量、初始化块,父类/子类构造函数执行顺序问题

package job; public class TestConsSeq { public static void main(String[] args) { /* * ...

java变量的初始化顺序

假设子类B继承了父类A,当执行语句new B()或者new B(…)语句之后 1. 类的装载 (多次实例化只装载一次) (1). 首先要进行类A和B的装载(类只有在使用New调用创建的时候才会...

java静态/动态成员变量、初始化块,父类/子类构造函数执行顺序问题

[java] view plaincopyprint? package job;    public class TestConsSeq {     ...

C++成员变量的初始化顺序问题

先来看两道题: // count algorithm example #include // std::cout #include // std::count #include ...

C++成员变量的初始化顺序问题

由于面试题中,考官出了一道简单的程序输出结果值的题:如下,   [cpp] view plaincopyprint?   class A  {  private:  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)