Java中的初始化顺序(静态成员、静态初始化块,普通成员、普通初始化块、构造函数)
本文链接 http://blog.csdn.net/xiaodongrush/article/details/29170099
參考文章 http://my.oschina.net/leoson/blog/103251
1. 一个类中的初始化顺序
(静态变量、静态初始化块)=>(变量、初始化块、构造器)。
2. 两个具有继承关系类的初始化顺序
父类的(静态变量、静态初始化块)=> 子类的(静态变量、静态初始化块)=> 父类的(变量、初始化块、构造器)=> 子类的(变量、初始化块、构造器)。
    以下举例说明:
class A {
    public A() {
        System.out.println("Constructor A");
    }
    {
        System.out.println("Field A");
    }
    static {
        System.out.println("Static A");
    }
}
public class B extends A {
    public B() {
        System.out.println("Constructor B");
    }
    {
        System.out.println("Field B");
    }
    static {
        System.out.println("Static B");
    }
    public static void main(String[] args) {
        new A();
        new B();
    }
}
new A()的结果
Static A
Static B
Field A
Constructor A
new B()的结果,静态成员和静态初始化块仅仅会运行一次。
Field A
Constructor A
Field B
Constructor B
Java中的初始化顺序(静态成员、静态初始化块,普通成员、普通初始化块、构造函数)的更多相关文章
- Java类的初始化顺序 (静态变量、静态初始化块、变量、初始...
		
很有意思的一篇文章 1.没有继承 静态变量->静态初始化块->变量->变量初始化块->构造方法 2.有继承的情况 父类静态变量->父类静态初始化块->子类静态变量- ...
 - [转]Java初始化顺序总结 - 静态变量、静态代码块、成员变量、构造函数
		
Java初始化顺序1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入)2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完成静态动作(包 ...
 - Java初始化顺序(静态变量、静态初始化块、实例变量、实例初始化块、构造方法)
		
1.执行顺序 1.1.一个类中的初始化顺序 类内容(静态变量.静态初始化块) => 实例内容(变量.初始化块.构造器) 1.2.两个具有继承关系类的初始化顺序 父类的(静态变量.静态初始化块)= ...
 - Java 中的 static 使用之静态初始化块
		
Java 中可以通过初始化块进行数据赋值.如: 在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块.如果使用 static 修饰初始化块,就称为静态初始化块. 需要特别注意: ...
 - java中代码执行顺序
		
静态代码块 -- >构造代码块 --> 构造方法静态代码块:只执行一次构造代码块:每次调用构造方法都执行 http://blog.csdn.net/wuhaiwei002/article/ ...
 - Java 中的 static 使用之静态变量
		
大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 static 大显身手的时候了!! Java 中 ...
 - java中Comparator比较器顺序问题,源码分析
		
提示: 分析过程是个人的一些理解,如有不对的地方,还请大家见谅,指出错误,共同学习. 源码分析过程中由于我写的注释比较啰嗦.比较多,导致文中源代码不清晰,还请一遍参照源代码,一遍参照本文进行阅读. 原 ...
 - Java中字段赋值顺序的问题
		
static字段 public class Client { public static int i = 2; static { i = 100; } public static void main( ...
 - JAVA中的代理技术(静态代理和动态代理)
		
最近看书,有两个地方提到了动态代理,一是在Head First中的代理模式,二是Spring AOP中的AOP.所以有必要补充一下动态代理的相关知识. Spring采用JDK动态代理和CGLib动态代 ...
 - java中的执行顺序
		
静态,非静态,构造,先父再子另外,静态块与静态变量的顺序取决于代码中的顺序 Comparable接口应用
 
随机推荐
- 【记录】mysql 5.7.20安装 出现...mysql-5.7.20-winx64\data\is_writable’ Errcode: 2 - No such file or directory
			
新到一家公司,安装mysql5.7.20时候出现一个问题(安装步骤可以参考这个): ...mysql-5.7.20-winx64\data\is_writable’ Errcode: 2 - No s ...
 - Loj10086 Easy SSSP
			
试题描述 输入数据给出一个有 N 个节点,M 条边的带权有向图.要求你写一个程序,判断这个有向图中是否存在负权回路.如果从一个点沿着某条路径出发,又回到了自己,而且所经过的边上的权和小于 0,就说 ...
 - 《深入理解Spark-核心思想与源码分析》(五)第五章任务提交与执行
			
即欲捭之贵周,即欲阖之贵密.周密之贵,微而与道相随.---<鬼谷子> 解释:译文:如果要分析问题,关键在于周详,如果要综合归纳问题,关键在于严密.周详严密的关键在于精深而与道相随. 解词: ...
 - IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) C. Bear and Up-Down 暴力
			
C. Bear and Up-Down 题目连接: http://www.codeforces.com/contest/653/problem/C Description The life goes ...
 - iOS防止button重复点击
			
项目中常会遇到在按钮的点击事件中去执行一些耗时操作.如果处理不当经常会出现连续多次点击push多次的情况,造成不好的用户体验. 一种情况是用户快速连续点击,这种情况无法避免.另一种情况是点击一次后响应 ...
 - CentOS 6.9设置阿里云源/163源
			
阿里云: 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS ...
 - Linux下swap分区多大才合适的问题探讨
			
说明: 1.这个话题在每个Linux发行版中都各不相同,且在当下内存硬盘的时代下,再组个磁盘阵列之后速度相当. 2.我觉得硬盘大的情况下,有多大搞多大,我只要控制内存的使用率在99%时才使用swap, ...
 - POJ 2417 Discrete Logging (Baby-Step Giant-Step)
			
Discrete Logging Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 2819 Accepted: 1386 ...
 - CSS隐藏元素的几个方法(display,visibility)的区别
			
在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间:有的可以响应点击,有的不能响应点击. { display: none; /* 不占据空间,无法点击 */ } ...
 - Centos7 内核从3.10升级到4.12过程
			
http://blog.csdn.net/youshijifen/article/details/73472434