实例解析-Java程序的加载过程
2008-04-27 13:29
796 查看
实例说话:
package belief.teach1.classProcess;
/**//*
* Java加载过程 by belief
*/
// 代表静态final变量的类
class StaticFinalVar ...{
public StaticFinalVar() ...{
System.out.println("静态final成员变量初始化开始...");
}
}
// 代表静态非final变量的类
class StaticVar ...{
public StaticVar() ...{
System.out.println("静态非final成员变量初始化开始...");
}
}
// 代表非静态final变量的类
class NonStaticFinalVar ...{
public NonStaticFinalVar() ...{
System.out.println("非静态final成员变量初始化开始...");
}
}
// 代表非静态非final变量的类
class NonStaticVar ...{
public NonStaticVar() ...{
System.out.println("非静态非final成员变量初始化开始...");
}
}
class Father ...{
public Father() ...{
System.out.println("Father构造器执行...");
}
}
class son extends Father ...{
// System.out.println("非静态非final成员定义...");
NonStaticVar nsv = new NonStaticVar();
// System.out.println("非静态final成员定义...");
final NonStaticFinalVar fnsv = new NonStaticFinalVar();
...{
System.out.println("我是第二吗?...");
}
static ...{
System.out.println("看谁先执行...");
}
// System.out.println("静态final成员定义...");
static final StaticFinalVar sfv = new StaticFinalVar();
// System.out.println("静态非final成员定义...");
static StaticVar sv = new StaticVar();
public son() ...{
System.out.println("son构造器执行...");
}
}
public class ClassLoad ...{
public static void main(String[] args) ...{
new son();
}
}
运行结果:
/**//*
* 看谁先执行...
* 静态final成员变量初始化开始...
* 静态非final成员变量初始化开始...
* Father构造器执行...
* 非静态非final成员变量初始化开始...
* 非静态final成员变量初始化开始...
* 我是第二吗?...
* son构造器执行...
*
*/
运行结果清楚说明了加载过程
类-->类中静态成员-->类中非静态成员-->构造器-->...
package belief.teach1.classProcess;
/**//*
* Java加载过程 by belief
*/
// 代表静态final变量的类
class StaticFinalVar ...{
public StaticFinalVar() ...{
System.out.println("静态final成员变量初始化开始...");
}
}
// 代表静态非final变量的类
class StaticVar ...{
public StaticVar() ...{
System.out.println("静态非final成员变量初始化开始...");
}
}
// 代表非静态final变量的类
class NonStaticFinalVar ...{
public NonStaticFinalVar() ...{
System.out.println("非静态final成员变量初始化开始...");
}
}
// 代表非静态非final变量的类
class NonStaticVar ...{
public NonStaticVar() ...{
System.out.println("非静态非final成员变量初始化开始...");
}
}
class Father ...{
public Father() ...{
System.out.println("Father构造器执行...");
}
}
class son extends Father ...{
// System.out.println("非静态非final成员定义...");
NonStaticVar nsv = new NonStaticVar();
// System.out.println("非静态final成员定义...");
final NonStaticFinalVar fnsv = new NonStaticFinalVar();
...{
System.out.println("我是第二吗?...");
}
static ...{
System.out.println("看谁先执行...");
}
// System.out.println("静态final成员定义...");
static final StaticFinalVar sfv = new StaticFinalVar();
// System.out.println("静态非final成员定义...");
static StaticVar sv = new StaticVar();
public son() ...{
System.out.println("son构造器执行...");
}
}
public class ClassLoad ...{
public static void main(String[] args) ...{
new son();
}
}
运行结果:
/**//*
* 看谁先执行...
* 静态final成员变量初始化开始...
* 静态非final成员变量初始化开始...
* Father构造器执行...
* 非静态非final成员变量初始化开始...
* 非静态final成员变量初始化开始...
* 我是第二吗?...
* son构造器执行...
*
*/
运行结果清楚说明了加载过程
类-->类中静态成员-->类中非静态成员-->构造器-->...
相关文章推荐
- 实例解析-Java程序的加载过程
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- java 程序加载过程---2-创建类实例对象
- java程序的加载过程
- Java程序运行内容加载过程
- Java 解析java程序的过程图
- (基于Java)编写编译器和解释器-第11章:解析程序、过程和函数-第二部分
- java程序在执行过程中,类,对象以及它们成员加载、初始化的顺序如下:
- java 程序加载过程---1-类直接调用静态方法
- java 实例化过程 和 程序加载
- Java 类的实例变量初始化的过程 静态块、非静态块、构造函数的加载顺序
- Java--Java程序的加载过程
- Java 程序的加载运行过程
- 使用java解析xml的实例程序
- 实例解析JAVA中代码的加载顺序
- Java类加载顺序问题实例——程序运行后感觉是之前版本
- Java程序的加载过程
- 关于java从编译成class文件到加载再到初始化过程解析
- Java 程序加载过程