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
给主人留下些什么吧!~~
评论热议
点击(此处)折叠或打开
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
给主人留下些什么吧!~~
评论热议
相关文章推荐
- java程序的加载过程
- Java 程序的加载运行过程
- 举例说明一个 java程序的加载,初始化以及运行过程
- Java--Java程序的加载过程
- 实例解析-Java程序的加载过程
- 实例解析-Java程序的加载过程
- java 实例化过程 和 程序加载
- java程序执行过程中动态加载jar包
- java 程序加载过程---1-类直接调用静态方法
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- java程序在执行过程中,类,对象以及它们成员加载、初始化的顺序如下:
- java程序加载过程
- java程序加载过程
- Java程序运行内容加载过程
- java程序的加载过程
- java程序的加载过程和equalse比较11
- java程序的加载过程
- java程序的加载过程
- java 程序加载过程---2-创建类实例对象
- java程序的加载过程