Java类成员的初始化顺序
2016-05-25 10:24
302 查看
静态成员(静态变量、静态初始化块) > 变量、初始化块 > 构造器
只要一个类被使用:调用了类中的某个静态方法或者是创建对象,这两种情况表明该类被使用了。
如果是有类的继承关系,则优先执行父类中的成员,属性及构造器,及初始化顺序为:
父类的静态成员
子类的静态成员
父类的变量、初始化块
父类构造器
子类的变量、初始化块
子类构造器
静态成员的特性为,只在数据存储区占一份内存,被类的所有对象所共有,在类被使用时执行。
非静态代码块主要用于对对象的初始化操作,每次创建对象都会执行一次。在构造器之前被调用,因此当有多个重载的构造器,并且有许多共同的初始化操作可放在非静态代码块中执行。
只要一个类被使用:调用了类中的某个静态方法或者是创建对象,这两种情况表明该类被使用了。
如果是有类的继承关系,则优先执行父类中的成员,属性及构造器,及初始化顺序为:
父类的静态成员
子类的静态成员
父类的变量、初始化块
父类构造器
子类的变量、初始化块
子类构造器
静态成员的特性为,只在数据存储区占一份内存,被类的所有对象所共有,在类被使用时执行。
非静态代码块主要用于对对象的初始化操作,每次创建对象都会执行一次。在构造器之前被调用,因此当有多个重载的构造器,并且有许多共同的初始化操作可放在非静态代码块中执行。
相关文章推荐
- Spring框架的学习(零)-简单介绍与入门实例
- JavaWeb 服务启动时,在后台启动加载一个线程
- spring MVC配置详解
- java多线程
- 在JAVA中生成RSA秘钥对实现SSH互信
- 使用Java抽取RTF思想
- JAVA学习之——fail-fast机制
- hash算法 (hashmap 实现原理) Java实现的散列表
- Spring 定时任务之 @Scheduled cron表达式
- java枚举创建,定义注意事项
- JAVA框架
- Java集合框架
- 安卓获取USB存储卡的外挂路径
- java 将 ResultSet 转化为 json格式
- Java字节码操作开源框架
- Spring中的@Transactional深度分析
- java 中webservice的作用完全详解!(转)
- eclipse插件
- JAVA 中常用的几个集合类
- 重新学习JAVA的笔记