变量的初始化顺序

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

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

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

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


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

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


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


Java类的变量初始化顺序

大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出到控制台...
  • meegomeego
  • meegomeego
  • 2015年08月05日 12:14
  • 1621

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

1、成员变量在使用初始化列表初始化时,与构造函数中初始化成员列表的顺序无关,只与定义成员变量的顺序有关。因为成员变量的初始化次序是根据变量在内存中次序有关,而内存中的排列顺序早在编译期就根据变量的定义...
  • MM_dou
  • MM_dou
  • 2017年01月15日 14:47
  • 613

C/C++内存分布与变量初始化顺序

关于入栈、出栈,栈顶栈底之类的分析见 函数调用的压栈出栈过程分析 下面继续分析C/C++的内存分布。 虽然0x10比一个变量需要的4个地址大了一些,但是0x10应该是规定的最小单位了。假如你要...
  • huqinweI987
  • huqinweI987
  • 2016年03月07日 00:48
  • 704

Java中成员变量的初始化顺序浅析

在Java中,所有的变量在使用之前都得到恰当的初始化,对于方法的局部变量,如果在使用前没有初始化,编译时系统会提示错误而无法继续编译;对于成员变量,系统会提供默认值,对于基本类型,默认置为0,引用类型...
  • abc13526222160
  • abc13526222160
  • 2016年10月06日 15:37
  • 527

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

问题来源: 由于面试题中,考官出了一道简单的程序输出结果值的题:如下, class A { private: int n1; int n2; public: A():n2(0),n1...
  • zhaojinjia
  • zhaojinjia
  • 2013年04月11日 09:29
  • 11843

java中普通变量、静态变量、静态代码块初始化的顺序辨析

1.普通变量的初始化 看如下程序 class Window{ public Window(int maker) { System.out.println("Window("+maker+")...
  • woshiwanghao_hi
  • woshiwanghao_hi
  • 2013年10月24日 12:51
  • 4274

C++成员变量、构造函数的初始化顺序

本文转自http://www.360doc.com/content/15/0326/15/22588076_458213585.shtml# 一、C++成员变量初始化 1、普通的变量:一般不考...
  • yinqiaohua
  • yinqiaohua
  • 2015年03月26日 15:16
  • 1330

Java 代码块、成员变量初始化、构造函数初始化顺序

一、对于实例变量 实例变量初始化过程分析 初始实例变量的有: ① 实例变量定义时初始化、 ② 非静态代码块初始化、 ③ 构造函数实例变量初始化 package cn.daywan.test; ...
  • Only_Wan
  • Only_Wan
  • 2016年11月23日 16:51
  • 1294

成员变量的初始化顺序

一.类加载时,变量的初始化顺序: 1.首先,给静态成员变量分配内存空间,进行默认初始化 (整型为0,浮点型为0.0,布尔型为false,字符型为'\u0000',引用型为null) 2.其次...
  • Stand1210
  • Stand1210
  • 2016年08月26日 20:57
  • 731

JAVA变量初始化顺序

变量概要 在Java程序中,变量可分为成员变量和局部变量。成员变量是指定义在类体内的变量,它们存储在类的栈中。如果定义该成员变量时没有使用static修饰,该成员变量又被称为非静态变量或实例变量,否...
  • binbinxyz
  • binbinxyz
  • 2014年05月29日 11:30
  • 760
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:变量的初始化顺序
举报原因:
原因补充:

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