变量的初始化顺序
2015-11-20 17:34
232 查看
java中子类和父类有很多变量,那么你知道它们的初始化顺序是什么样的吗?
对于同一个类中变量的初始化顺序是:先静态变量后对象变量最后构造器
对于有父类的类中变量初始化顺序是:先父类静态变量,再子类静态变量,再父类对象变量、父类构造器最后是子类对象变量子类构造器。
类变量:即时静态变量,static修饰。
对象变量:即是普通常见的变量,非static修饰,在创建对象时才会初始化对象变量。
这个很好理解,对于类变量(静态变量,static修饰),这个是在类加载过程中初始化的(参考上一篇文章,类加载过程--最后一部分内容),会先初始化父类类变量,在初始化子类类变量,这个是类加载的过程,只有类加载了我们才能创建对象,所以类变量的初始化在对象变量之前,且父类在前,子类在后。对于对象变量构造器,记得一句话:先父后子,先对象变量后构造器。
对于同一个类中变量的初始化顺序是:先静态变量后对象变量最后构造器
对于有父类的类中变量初始化顺序是:先父类静态变量,再子类静态变量,再父类对象变量、父类构造器最后是子类对象变量子类构造器。
类变量:即时静态变量,static修饰。
对象变量:即是普通常见的变量,非static修饰,在创建对象时才会初始化对象变量。
这个很好理解,对于类变量(静态变量,static修饰),这个是在类加载过程中初始化的(参考上一篇文章,类加载过程--最后一部分内容),会先初始化父类类变量,在初始化子类类变量,这个是类加载的过程,只有类加载了我们才能创建对象,所以类变量的初始化在对象变量之前,且父类在前,子类在后。对于对象变量构造器,记得一句话:先父后子,先对象变量后构造器。
相关文章推荐
- Android Studio中aidl文件生成java文件
- java变量初始化顺序
- java/excel上传,解析,导入数据库
- Spring - bean的lazy-init属性(懒加载)
- 【Java EE 学习 67 上】【OA项目练习】【JBPM工作流的使用】
- 为什么我们有时不用配置java环境变量?
- Spring - bean的autowire属性(自动装配)
- Android打开MyEclipse报错:发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素。
- Spring+Mybatis多数据源配置(四)——AbstractRoutingDataSource实现数据源动态切换
- Spring+Mybatis多数据源配置(四)——AbstractRoutingDataSource实现数据源动态切换
- JavaSocket通信Demo
- Spring - bean的依赖关系(depends-on属性)
- java jmf视频播放器无法播放视频问题
- 使用javamail发送附件,实践
- Myeclipse快捷键
- JDK并发工具类源码学习系列——PriorityBlockingQueue
- "Java 反序列化"过程远程命令执行漏洞
- Spring 中的事件监听的实现
- Spring JPA 的使用入门
- Java分页查询工具类