Java 程序加载过程

来源:互联网 发布:知乎 cqy是什么意思 编辑:程序博客网 时间:2024/05/16 19:34
示例代码(From Java SE 6.0 编程指南):

点击(此处)折叠或打开

  1. class MyClassFather
  2. {
  3.     public MyClassFather()
  4.     {
  5.         System.out.println("执行要创建对象类父类的构造器!!!");
  6.     }
  7. }

  8. class MyClass extends MyClassFather
  9. {
  10.     //非静态成员
  11.     Unstatic u=new Unstatic();
  12.     final UnstaticFinal uf=new UnstaticFinal();
  13.     {
  14.         System.out.println("执行非静态语句块!!!");
  15.     }
  16.     //静态成员
  17.     static
  18.     {
  19.         System.out.println("执行静态语句块!!!");
  20.     }    
  21.     static final StaticFinal sf=new StaticFinal();
  22.     static Static s=new Static();
  23.     //类构造器
  24.     MyClass()
  25.     {
  26.         System.out.println("执行要创建对象类的构造器!!!");
  27.     }    
  28. }
  29. //用来打印类静态final的成员变量的类
  30. class StaticFinal
  31. {
  32.     StaticFinal()
  33.     {
  34.         System.out.println("静态final的成员变量初始化!!!");
  35.     }
  36. }
  37. //用来打印类静态非final的成员变量的类
  38. class Static
  39. {
  40.     Static()
  41.     {
  42.         System.out.println("静态非final的成员变量初始化!!!");
  43.     }
  44. }
  45. //用来打印类非静态final的成员变量的类
  46. class UnstaticFinal
  47. {
  48.     UnstaticFinal()
  49.     {
  50.         System.out.println("非静态final的成员变量初始化!!!");
  51.     }
  52. }
  53. //用来打印类非静态非final的成员变量的类
  54. class Unstatic
  55. {
  56.     Unstatic()
  57.     {
  58.         System.out.println("非静态非final的成员变量初始化!!!");
  59.     }
  60. }
  61. public class Sample10_16
  62. {
  63.     public static void main(String[] args)
  64.     {
  65.         //创建对象
  66.         new MyClass();
  67.     }
  68. }
        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
给主人留下些什么吧!~~
原创粉丝点击