请各位高手给解决以下,我对java程序类的编译和运行不太明白,think in java中所讲的初始化顺序是编译时完成的,还是执行完成的呀?????????

解决方案 »

  1.   

    你写代码-->.java
    编译    -->.class然后你运行java HelloWord的时候
    装载    将class(二进制)格式装入内存
    ..
    初始化(实列)  呵呵,明白了就给分。
    其中的...,我就不详细说了。自己找一本JVM的书慢慢看
      

  2.   

    是执行时完成的.
    每当编译了一个新类,就会产生一个Class对象(即被保存在同名的.class文件中).在运行时当我们想生成这个类的对象时,运行这个程序的jvm会首先检查这个类的Class对象是否已经加载.如未加载,jvm就会根据类名查找.class文件,并将其载入.所以java程序并不是一开始执行就会被完全加载的.比如:static 初始化就是在类加载时进行的.而其他的初始化就在它之后了!
      

  3.   

    你可能要去看一下JVM的工作机制吧,
      

  4.   

    买本 深入java虚拟机去看吧!
      

  5.   

    1.编译了产生的Class,这个过程只是编译器把文本格式java代码编译成虚拟机所认识的字节码的过程.
    2.启动服务器,这时候会把jdk中的class装载进内存.
    3.执行的时候,虚拟机发现了某个自定义类的声明,首先检查这个类的Class对象是否已经加载,如果没有加载,则把这个类装载.
    注意:在2,3过程中,类中的static被执行
    4.执行new操作的时候,虚拟机根据已经装载的class,寻找这个class的构造器,执行它进行初始化.
      

  6.   

    编译产生class文件,产生jvm认识的符号码
    jvm载入class进内存,然后运行,执行等
      

  7.   

    深入java虚拟机
    哪里可以下载此书?