java程序加载过程
来源:互联网 发布:seo引流的方法 编辑:程序博客网 时间:2024/05/16 05:03
java程序在执行过程中,类,对象以及它们成员加载、初始化的顺序如下:
1、首先加载要创建对象的类及其直接与间接父类。
2、在类被加载的同时会将静态成员进行加载,主要包括静态成员变量的初始化,静态语句块的执行,在加载时按代码的先后顺序进行。
3、需要的类加载完成后,开始创建对象,首先会加载非静态的成员,主要包括非静态成员变量的初始化,非静态语句块的执行,在加载时按代码的先后顺序进行。
4、最后执行构造器,构造器执行完毕,对象生成。
提示:再次创建同类的对象时,类的加载不再进行,语句块(静态的)只执行一次,加载完成后不再执行,创建子类对象时上述过程要先走父类的,一直递归到java.lang.object类。
下面的例子说明了上述加载规则,代码如下:
public class MyClassFather {
public MyClassFather() {
System.out.println("执行要创建对象类父类的构造器");
}
}
public class MyClass extends MyClassFather {
public MyClass() {
System.out.println("执行要创建对象类的构造器");
}
Unstatic u = new Unstatic();
final UnstaticFinal uf = new UnstaticFinal();
{
System.out.println("执行非静态语句块");
}
static {
System.out.println("执行静态语句块");
}
static final StaticFinal sf = new StaticFinal();
static Static s = new Static();
}
public class StaticFinal {
public StaticFinal() {
System.out.println("静态final的成员变量初始化");
}
}
public class Static {
public Static() {
System.out.println("静态非final的成员变量初始化");
}
}
public class UnstaticFinal {
public UnstaticFinal() {
System.out.println("非静态final的成员变量初始化");
}
}
public class Unstatic {
public Unstatic() {
System.out.println("非静态非final的成员变量初始化");
}
}
public class Sample10_16 {
public static void main(String[] args) {
new MyClass();
}
}
运行结果如下:
执行静态语句块!!!
静态final的成员变量初始化!!!
静态非final的成员变量初始化!!!
执行要创建对象类父类的构造器!!!
非静态非final的成员变量初始化!!!
非静态final的成员变量初始化!!!
执行非静态语句块!!!
执行要创建对象类的构造器!!!
- java程序加载过程
- Java 程序加载过程
- java程序加载过程
- Java程序的加载过程
- java程序的加载过程
- java程序的加载过程
- java程序的加载过程
- java程序的加载过程
- Java--Java程序的加载过程
- 实例解析-Java程序的加载过程
- 实例解析-Java程序的加载过程
- java 实例化过程 和 程序加载
- Java 程序的加载运行过程
- Java程序运行内容加载过程
- Linux程序加载过程
- java 程序加载过程---1-类直接调用静态方法
- java 程序加载过程---2-创建类实例对象
- java程序执行过程中动态加载jar包
- 解决Flash z-index失效挡住下面的问题
- SQLServer2005新增序列功能的几个函数:ROW_NUMBER, RANK, DENSE_RANK, and NTILE
- http://blog.csdn.net/hongmy525/category/336279.aspx
- evhttp处理POST请求的技巧
- STL中的常用的vector,map,set,Sort用法
- java程序加载过程
- 队列
- cvMorphologyEx —不推荐使用
- 2010年福州大学 空间中心 GIS 试题
- 图解 Android Handler 线程消息机制
- PSP 购买
- 重要插值积分算法实现
- 设计模式之十一 迪米特法则-无熟人难办事
- php 用户自定义异常