- 浏览: 556419 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
fiwrc:
知道了. 谢谢~!
\(^_^)/ Java多线程Master-Worker模式 -
fiwrc:
求问 getResultMap 是什么方法???? .. ...
\(^_^)/ Java多线程Master-Worker模式 -
我改名了:
...
\(^_^)/ 表达式解析器(MVEL) -
拓子轩:
赞一个
Oracle 语句大全 -
rudaoxia:
写的很详细,很好,还有很多的拓展,谢谢博主,收下了
\(^_^)/ JDK工具、命令
子类的实例化主要分为两个步骤:
<1>.类相关静态内容 初始化;
*先父类再子类:
1.父类的static属性;
2.父类的static块;
3.子类的static属性;
4.子类的static块;
<2>.类的实例内容 初始化;
*调用构造子:先父类后子类:构造子调用之前先实例化实例字段和块
5.父类的普通属性;
6.父类的普通块;
7.父类的构造子;
8.子类的普通属性;
9.子类的普通块;
10.子类的构造子;
例子:
package basic;
public class ClzInit {
public static void main(String[] args) {
new Son();
}
}
class Parent {
protected int n = 5;
protected static int m = 5;
static {
m = m * 2;
System.out.println("父类静态块调用; m="+m);
}
{
n = n * 2;
m = m * 2;
System.out.print("父类普通块调用;");
System.out.print("n="+n);
System.out.println(" m="+m);
}
public Parent() {
this.n = n * 10;
m = m + 10;
System.out.print("父类构造子; n="+n);
System.out.println(" m="+m);
}
}
class Son extends Parent {
private int sn=3;
private static int sm=3;
static {
m = m + 2;
sm=sm+2;
System.out.println("子类静态块调用; m="+m);
}
{
n = n + 2;
sn=sn+2;
m = m + 2;
System.out.println("子类普通块调用;");
System.out.print("n="+n);
System.out.print("sn="+sn);
System.out.println(" m="+m);
}
public Son() {
this.n = n + 10;
sn=sn+10;
m = m + 10;
System.out.print("子类构造子;n="+n);
System.out.println(" m="+m);
}
}
* 1.父static域
* 2.父static块
* 3.子static域
* 4.子static块
* 5.父普通域
* 6.父普通块{}
* 7.父构造子
* 8.子普通域
* 9.子普通块{}
* 10.子构造子
package nie.test.extend;
/** 子构造子的初始化过程:
* @author dotjar
* 1.父static域
* 2.父static块
* 3.子static域
* 4.子static块
* 5.父普通域
* 6.父普通块{}
* 7.父构造子
* 8.子普通域
* 9.子普通块{}
* 10.子构造子
*/
public class Test {
public static void main(String[] args) {
new Son("s");
}
}
class Father {
static protected String s = "father_static_property_string"; //1
protected String b = "father_normal_property_string"; //5
static {
s = "o"; //2
System.out.print("d");
System.out.print(s);
}
{
b="r"; //6
System.out.print("a");
System.out.print(b);
}
Father() {
this("@");
System.out.print("1"); //8
}
Father(String s) {
System.out.print(s); //7
}
}
class Son extends Father {
public static String s = "son_static_property_string"; //3
public String b = "son_normal_property_string"; //9
static {
s = "j"; //4
System.out.print("t");
System.out.print(s);
}
{
b = "3"; //10
System.out.print("6");
System.out.print(b);
}
Son() {
System.out.print("."); //11
}
Son(String s) {
this();
System.out.print("com"); //12
}
}
1.父类的静态成员与静态初始化块,按照出现的顺序
2.子类的静态成员与静态初始化块,按照出现的顺序
3.父类的实例成员与实例初始化块,按照出现的顺序
4.父类的构造方法
5.子类的实例成员与实例初始化块,按照出现的顺序
6.子类的构造方法
1.父类--静态变量
2.父类--静态初始化块
3.子类--静态变量
4.子类--静态初始化块
5.父类--变量
6.父类--初始化块
7.父类--构造器
8.子类--变量
9.子类--初始化块
10.子类--构造器
下面是一个类中的静态变量、变量以及构造函数的初始化顺序。
Java代码
public class InitialOrderTest
{
public static String staticField = "静态变量";
public String field = "变量";
static
{
System.out.println(staticField);
System.out.println("静态初始化块");
}
{
System.out.println(field);
System.out.println("初始化块");
}
public InitialOrderTest()
{
System.out.println("构造器");
}
public static void main(String[] args)
{
new InitialOrderTest();
}
}
//**********************
//输出结果为;
//**********************
//静态变量
//静态初始化块
//变量
//初始化块
//构造器
下面是子类和父类中静态变量、变量以及构造函数的初始化顺序。
Java代码
public class InitialOrder extends Parent
{
public static String s_StaticField = "子类--静态变量";
public String s_Field = "子类--变量";
static
{
System.out.println(s_StaticField);
System.out.println("子类--静态初始化块");
}
{
System.out.println(s_Field);
System.out.println("子类--初始化块");
}
public InitialOrder()
{
System.out.println("子类--构造器");
}
public static void main(String[] args)
{
new InitialOrder();
}
}
class Parent
{
public static String p_StaticField = "父类--静态变量";
public String p_Field = "父类--变量";
static
{
System.out.println(p_StaticField);
System.out.println("父类--静态初始化块");
}
{
System.out.println(p_Field);
System.out.println("父类--初始化块");
}
public Parent()
{
System.out.println("父类--构造器");
}
}
//**********************
//输出结果为;
//**********************
//父类--静态变量
//父类--静态初始化块
//子类--静态变量
//子类--静态初始化块
//父类--变量
//父类--初始化块
//父类--构造器
//子类--变量
//子类--初始化块
//子类--构造器
发表评论
-
Java 设计模式和设计原则
2017-12-22 15:00 0http://java-design-patterns.c ... -
jeesite,jeeplus,jeecg,jfinal
2017-12-21 19:43 0jeesite,jeeplus,jeecg,jfinalh ... -
batch scheduler
2017-08-10 18:19 0batch scheduler -
statsd+graphite+grafana 监控
2016-09-27 14:58 0https://my.oschina.net/u/138210 ... -
spring boot admin server
2016-09-02 17:17 0关键词:Spring boot 监控、Spring Boo ... -
资料备份
2016-07-22 17:29 0微服务 -
spring cloud
2016-07-17 22:03 0spring cloud http://blog. ... -
oschina_git_java 开源项目
2016-04-22 17:21 0项目 描述 JFinal / JFinal ... -
Mybatis Generator 配置文件
2016-04-08 15:44 648<?xml version="1.0&quo ... -
Java中的Object类
2015-08-03 09:53 626package java.lang; ... -
\(^_^)/ Java 反射
2015-05-17 15:49 1080http://blog.csdn.net/libo2006 ... -
Maven中的pom.xml文件
2015-05-14 23:01 11951http://blog.csdn.net/adeyi/ar ... -
Eclipse中的.project文件、classpath文件
2015-05-14 22:58 2865<?xml version="1.0&qu ... -
eclipse中的.classpath文件
2015-05-14 22:40 102.classpath的位置定义了你这个项目在编译时所使用的 ... -
TreadLocal xxx
2015-04-09 23:06 0ThreadLocal是什么 早在JD ... -
\(^_^)/ Servlet、Filter、Listener、Interceptor
2015-01-13 15:49 1294参考:http://thinkerandthinker.i ... -
\(^_^)/ 表达式解析器(MVEL)
2014-10-21 22:08 12059Jeval 在运行时解析计算静态和动态表达式;支持数学, ... -
\(^_^)/ POI读写海量Excel
2014-10-13 19:50 2506转自:http://blog.csdn.net/goodku ... -
\(^_^)/ Java8 源码目录结构
2014-06-27 22:45 595├─com │ └─sun ... -
\(^_^)/ eclipse 插件、注释模版、配置
2014-06-06 15:53 3111Eclipse 插件 1. Fi ...
相关推荐
介绍一下java程序初始化的顺序,这会对您以后的开发所有帮助
详细讲解java类中静态变量,普通标量,对象、基本类型的初始化顺序。
对java类初始化以及顺序,详解,由于转载仅供大家参考!
具体内容见博客
本篇文章主要介绍了Spring 中如何控制2个bean中的初始化顺序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
java面试题-类的初始化顺序.doc 大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,...
一个java代码初始化具体过程的的demo
Java初始化顺序1
“礼让”原则学习Java对象初始化顺序
作为一名程序员必须知道Java初始化顺序......
java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...
详细介绍了Java的静态成员变量、静态数据块、非静态成员变量和非静态成员变量等初始化顺序
对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器
类的初始化顺序,适用于任何一种面向对象的语言。真正了解面向对象的程序的流程。配有实例
JAVA面试题解惑系列(一)——类的初始化顺序-JAVA程序员JAVA工程师面试必看
java类中静态域、块,非静态域、块,构造函数的初始化顺序,通过本例子,能够清楚了解到java类的初始化顺序
C++和Java初始化顺序的比较代码, 详细的解说请参考博客地址, http://blog.csdn.net/ostrichmyself/archive/2010/11/25/6035538.aspx
JAVA面试题解惑系列类的初始化顺序JAVA程序员JAVA工程师面试必看.pdf