Java学习之初始化块加载顺序
2016-08-08 08:59
246 查看
对于具有父子继承关系的初始化块和构造函数以及静态成员的加载顺序是如何的呢?
一个demo看穿一切:
![](https://img-blog.csdn.net/20160808085702692)
总结一下就是:从上到下,一静到底,再上再下,先初始再构造。
一个demo看穿一切:
class Root{ static{ System.out.println("这是Root的静态初始化块"); } { System.out.println("这是Root的普通初始化块"); } public Root(){ System.out.println("这是Root的构造函数"); } } class Mid extends Root{ static{ System.out.println("这是Mid的静态初始化块"); } { System.out.println("这是Mid的普通初始化块"); } public Mid(){ System.out.println("这是Mid的构造函数"); } } class Leaf extends Mid{ static int a = 20; static{ a = 10; System.out.println("这是Leaf的静态初始化块"); } { System.out.println("这是Leaf的普通初始化块"); } public Leaf(){ System.out.println("这是Leaf的构造函数"); System.out.println("a = "+a); } public static void main(String []args){ Leaf leaf = new Leaf(); } }
总结一下就是:从上到下,一静到底,再上再下,先初始再构造。
相关文章推荐
- Java中Filter、Listener的学习以及istener、 filter、servlet 加载顺序详解
- Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解
- java中变量加载顺序再学习
- Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解
- 【Java学习笔记】创建对象时类的加载顺序——基于Java SE8
- java学习笔记:1.有关java类加载顺序
- Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解
- Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解
- Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解
- Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解
- Java学习总结6——类加载1(类初始化顺序)
- java学习顺序
- JAVA学习顺序
- 学习Java的学习顺序
- 资深JAVA讲师推荐的JAVA学习顺序
- java中static修饰符的代码的加载顺序
- 扩展类加载器-------改变JAVA的父优先类加载顺序
- [转] Java类的初始化顺序 (静态变量、静态初始化块、变量、初始化块、构造器)
- Java学习笔记(1) 对象初始化顺序
- java web.xml被文件加载过程,各节点加载顺序总结