【转】Java类初始化过程
来源:互联网 发布:知其然的然是什么意思 编辑:程序博客网 时间:2024/06/05 06:13
package test;
/*
测试3个内容:
类加载顺序
子父类执行过程
对象初始化过程
从几次试验我们看到:
当执行到类时,类被加载到内存,并初始化
静态成员被加载到共享区,不用实例化对象就可以调用静态资源
静态成员变量,静态成员方法,静态代码块,只初始化一次
而普通变量,普通代码块,构造方法,在每次实例化对象时都要初始化
子类对象要初始化时:
会先初始化父类静态成员和静态代码块,
再初始化子类静态成员和静态代码块,
然后是父类普通代码块,父类构造方法
然后是子类普通代码块,子类构造函数
当子类名直接调用继承自父类的静态成员时,子类不会初始化,而只初始化父类
*/
class Fu //父类
{
public static String staticField = "父类-静态变量";
public static String extend = "父类-静态变量extend"; //让子类调用
public String field = "父类-普通变量";
public Fu()
{
System.out.println("父类-构造方法");
}
static
{
System.out.println("Fu_static:父类-静态初始化块");
System.out.println("Fu_static:"+staticField);
}
{
System.out.println("Fu_普通块:"+field);
System.out.println("Fu_普通块:"+"父类-初始化块");
}
}
class Zi extends Fu //子类
{
public static String staticField = "子类-静态变量";
public String field = "子类-普通变量";
{
System.out.println("Zi_普通块:"+field);
System.out.println("Zi_普通块:"+"子类-初始化块");
}
public Zi()
{
System.out.println("子类-构造方法");
}
static
{
System.out.println("Zi_static:"+"子类-静态初始化块");
System.out.println("Zi_static:"+staticField);
}
}
class Demo
{
public static void main(String args[]) throws Exception
{
System.out.println("main方法");
Thread.sleep(2000);
System.out.println("");
Zi zi = new Zi();
System.out.println("");
Zi zi2 = new Zi();
}
}
=============================================================
main方法
Fu_static: 父类-静态初始化块
Fu_static:父类-静态变量
Zi_static:子类-静态初始化块
Zi_static:子类-静态变量
Fu_普通块:父类-普通变量
Fu_普通块:父类-初始化块
父类-构造方法
Zi_普通块:子类-普通变量
Zi_普通块:子类-初始化块
子类-构造方法
Fu_普通块:父类-普通变量
Fu_普通块:父类-初始化块
父类-构造方法
Zi_普通块:子类-普通变量
Zi_普通块:子类-初始化块
子类-构造方法
- 【转】Java类初始化过程
- JAVA类初始化过程
- java类初始化过程
- Java类初始化过程
- java类初始化过程
- Java类初始化过程
- Java类初始化过程
- java类的初始化过程
- JAVA类的初始化过程
- Java类的初始化过程
- Java 类的初始化过程
- Java类的初始化过程
- java类对象初始化过程
- Java类的初始化过程
- Java类的初始化过程
- Java类的初始化过程
- JAVA 对象的初始化过程和类的初始化过程
- 解析 Java 类和对象的初始化过程(转)
- 我们来聊聊SYSLOGD和LOGROTATE吧
- 2012年3月份武大计算机复试准备
- 强烈推荐学习rails的书籍(该书使用rails 3.2.1,并且随着rails升级而升级)
- MFC多线程编程
- 程序员应该懂的道理
- 【转】Java类初始化过程
- 在ubuntu安装rails详解(该文章指导在ubuntu环境下安装rails,并且随着ubuntu版本提高而改变)
- JavaScript 引用类型
- Hibernate 乐观锁实现之 TimeStamp
- 技术转载:退出android程序清除所有activity
- STL中Straits技术
- 多表查询
- Java中的异常处理
- JSP入门之避免Form表单重复提交的几种方案