您的位置:首页 > 编程语言 > Java开发

Java 程序加载过程

2013-11-01 14:47 639 查看
示例代码(From Java SE 6.0 编程指南):

点击(此处)折叠或打开

class MyClassFather

{

public MyClassFather()

{

System.out.println("执行要创建对象类父类的构造器!!!");

}

}

class MyClass extends MyClassFather

{

//非静态成员

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();

//类构造器

MyClass()

{

System.out.println("执行要创建对象类的构造器!!!");

}

}

//用来打印类静态final的成员变量的类

class StaticFinal

{

StaticFinal()

{

System.out.println("静态final的成员变量初始化!!!");

}

}

//用来打印类静态非final的成员变量的类

class Static

{

Static()

{

System.out.println("静态非final的成员变量初始化!!!");

}

}

//用来打印类非静态final的成员变量的类

class UnstaticFinal

{

UnstaticFinal()

{

System.out.println("非静态final的成员变量初始化!!!");

}

}

//用来打印类非静态非final的成员变量的类

class Unstatic

{

Unstatic()

{

System.out.println("非静态非final的成员变量初始化!!!");

}

}

public class Sample10_16

{

public static void main(String[] args)

{

//创建对象

new MyClass();

}

}

output:

执行静态语句块!!!

静态final的成员变量初始化!!!

静态非final的成员变量初始化!!!

执行要创建对象类父类的构造器!!!

非静态非final的成员变量初始化!!!

非静态final的成员变量初始化!!!

执行非静态语句块!!!

执行要创建对象类的构造器!!!

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Java程序在执行过程中,类,对象,以及他们成员函数加载,初始化的顺序——

当创建一个对象时:

1.首先加载创建兑现的类机器直接与间接父类。

2.在类加载的同时,加载静态成员,包括静态成员的初始化,静态语句的执行(按先后顺序)

3.类加载完成后,开始创建对象,先加载非静态成员,(包括非静态成员的初始化,和非静态语句块的顺序执行)

4.最后执行构造器,对象生成。

阅读(79) | 评论(0) | 转发(0) |

0
上一篇:Java 构造器

下一篇:Java单列模式

相关热门文章

JDK1.6官方下载_JDK6官方下载_...

MyEclipse6.5下载及注册码...

Eclipse+MyEclipse的配置

Eclipse 插件安装、升级和卸载...

最新版SWT Designer 6.0 安装,...

ChinaUnix & ITPUB社区12周年...

ssh连接出现以下提示,求解...

如何扩展MYSQL

准备做一个大型门户,用户什么...

gbk or utf8

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: