Java初始化顺序
package com.helei.init; class Log {
public static String fatherStaticString(){System.out.println("father's static field");return "";}
public static String sonStaticString(){System.out.println("son's static field");return "";}
public static String fatherNormalString(){System.out.println("father's normal field");return "";}
public static String sonNormalString(){System.out.println("son's normal field");return "";}
}
class Father{
String fatherNormalField1 = Log.fatherNormalString();
static String fatherStaticField1 = Log.fatherStaticString(); {System.out.println("Father's normal block1");} static {System.out.println("Father's static block1");}
static {System.out.println("Father's static block2");} static String fatherStaticField2 = Log.fatherStaticString(); {System.out.println("Father's normal block2");} String fatherNormalField2 = Log.fatherNormalString(); Father(){
System.out.println("Father's constructor");
}
}
public class Son extends Father {
String sonNormalField1 = Log.sonNormalString();
static String sonStaticField1 = Log.sonStaticString(); {System.out.println("Son's normal block1");} static {System.out.println("Son's static block1");}
static {System.out.println("Son's static block2");} static String sonStaticField2 = Log.sonStaticString(); {System.out.println("Son's normal block2");} String sonNormalField2 = Log.sonNormalString(); Son(){
System.out.println("Son's constructor");
} public static void main(String[] args){
Son son1 = new Son();
Son son2 = new Son();
}
}
father's static field
Father's static block1
Father's static block2
father's static field
son's static field
Son's static block1
Son's static block2
son's static field
father's normal field
Father's normal block1
Father's normal block2
father's normal field
Father's constructor
son's normal field
Son's normal block1
Son's normal block2
son's normal field
Son's constructor
father's normal field
Father's normal block1
Father's normal block2
father's normal field
Father's constructor
son's normal field
Son's normal block1
Son's normal block2
son's normal field
Son's constructor 1、父类静态字段/代码块(并列优先级,按代码顺序)
2、子类静态字段/代码块(并列优先级,按代码顺序)
3、父类普通字段/代码块(并列优先级,按代码顺序)
4、父类构造方法
5、子类普通字段/代码块(并列优先级,按代码顺序)
6、子类构造方法
Java初始化顺序:
1、先父类后子类
2、先静态字段或代码块,后普通字段或代码块(并列优先级,按代码顺序)
3、先父类构造方法,后子类构造方法
Java初始化顺序的更多相关文章
- [转]Java初始化顺序总结 - 静态变量、静态代码块、成员变量、构造函数
Java初始化顺序1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入)2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完成静态动作(包 ...
- C# 与Java初始化顺序及异同(转)
C#初始化顺序 类成员变量初始化先于类的构造函数 静态成员变量先于实例变量 子类成员变量先于父类成员变量(java相反) 父类构造函数先于子类构造函数 参考实例: using System; //us ...
- java 初始化顺序
java 变量类型如下: 实例变量: 类变量: 初始化途经如下: 实例变量 --声明时,初始化: --非静态初始化块内,初始化: --构造函数内,初始化: 实例1: public class bean ...
- java 初始化顺序问题
今天在<thinking in java>上面看了关于初始化问题,之前从来都没有深入考虑过,这次算是把它搞明白了,所以记录一下: 这个不是我看到的初始化顺序问题,在网上搜索的时候发现的,感 ...
- Java初始化顺序(静态变量、静态初始化块、实例变量、实例初始化块、构造方法)
1.执行顺序 1.1.一个类中的初始化顺序 类内容(静态变量.静态初始化块) => 实例内容(变量.初始化块.构造器) 1.2.两个具有继承关系类的初始化顺序 父类的(静态变量.静态初始化块)= ...
- 10、java初始化顺序
在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入) 2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完成静态动作(包括静态代码和变 ...
- Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序
静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行.执行顺序优先级:静态块,main(),构造块,构造方法. 构造函数 public H ...
- Java 类成员的初始化顺序
Java 类成员的初始化顺序 前言:开发中碰到一个Java文件中有很多的成员变量,包括静态和非静态的,还有很多的初始化方法,很好奇这些成员的初始化顺序,在这里作个研究. 1 无继承情况下的Jav ...
- Android(java)学习笔记136:Java类初始化顺序
Java类中初试化的顺序: 由此得出Java普通类初始化顺序结论: 静态变量 静态初始化块 变量 初始化块 构造器 由此得出Java继承类初始化顺序结论: 1 .继承体系的所有静态成员初始化( ...
随机推荐
- Tomcat 让百度的域名显示自己的页面内容(玩耍篇)
步骤一:在 C:\Windows\System32\drivers\etc目录下的Hosts文件中添多一个条目,如下图, 第二步:在server.xml文件中做响应配置,如下图 然后在Host节点中进 ...
- AD域内DNS服务器如何解析公网域名
原创地址:http://www.cnblogs.com/jfzhu/p/4022999.html 转载请注明出处 AD域内需要有DNS服务器,用于解析域内的计算机名,但是域内的计算如何解析公网的域名呢 ...
- Nginx配置文件解析
user nginx nginx; #定义Nginx运行的用户和用户组 worker_processes 1; #nginx进程数,建议设置为等于CPU总核心数 worker_rlimit_nofil ...
- Hibernate框架的配置
概念 持久化框架 把对象保存到数据库中,对数据的CURD操作 配置Hibernate 1.在项目中引入Hibernate的Jar包 在 WebContent/WEB-INF/lib 目录下 导入jar ...
- python 日期计算案例
一.计算两个日期内的所有月 def get_month_interval(start_str, end_str): start_year, start_month = list(map(int, st ...
- 浅谈ThinkPHP3.2的子域名部署和路由优化(一)
前言:建立一个网站系统,往往包含多个子网站,例如PC官网,移动端官网,后台管理,数据源自一个相同的数据库,整个架构上,从ThinkPHP来看,可以大体理解为Model(M)是一样的,Controlle ...
- 无法在“EntityFramework”已存在的情况下创建影像复制该文件的解决方案
问题产生的原因:你项目正在生成中你就打开浏览器预览了,导致这个问题解决方案:右击重新生成项目,等生成后再打开 “/”应用程序中的服务器错误. 无法在“EntityFramework”已存在的情况下创建 ...
- Sql Server系列:索引设计原则及优化
1. 索引设计原则 索引设计不合理或缺少索引都会对数据库的性能造成障碍,高效的索引对于获得良好的性能非常重要. 设计索引时的一些原则: ◊ 索引并不是越多越好,一个表中如果有大量的索引,不仅占用大量的 ...
- win8下IE10的鼠标mouse事件响应错误BUG
具体症状就是有时候鼠标左键响应,有时候右键才能响应 问题的原因就是事件对象的detail没有复位 https://github.com/clientside/amplesdk/issues/187
- Neutron Vlan Network 原理- 每天5分钟玩转 OpenStack(92)
前面我们陆续学习了 Neutron local network,flat network 和 DHCP 服务,从本节将开始讨论 vlan network. vlan network 是带 tag 的网 ...