java的运行流程

王朝java/jsp·作者佚名  2008-05-31
宽屏版  字体: |||超大  

Java的运行流程

一,我们所看不到的:

1,假如java文件没有package,就默认给文件加上"无名"package;

2,默认导入java.lang包,所以我们的java程序中可以使用Sting,Math,Integer等类,包括一些异常类;

3,假如生成的类没有父类,则为这个类隐式加上父类:Object;因此,包括Object中的许多方法可以使用;

4,字段的初始化;

二,我们所看的到的:

既然看的到,就先看程序运行结果:

public class JRun1 {

public JRun1() {

System.out.println(" 构造函数");

}

static

{

System.out.println("static{}");

}

{

System.out.println("{}");

}

public static void main(String[] args) {

System.out.println("main()");

}

}

运行结果:

static{}

main()

显然,程序运行时,先运行:

static

{

System.out.println("static{}");

}

再调用main();

注重: 我们可以得到一个副产品:不用main方法也能运行的程序:

public class JRun1 {

static

{

System.out.println("no main()");

System.exit(0);

}

}

假如我们在类中建立一个对象:

public class JRun1 {

public JRun1() {

System.out.println(" 构造函数");

}

static

{

System.out.println("static{}");

}

{

System.out.println("{}");

}

public static void main(String[] args) {

System.out.println("main()");

new JRun1();

}

}

运行结果:

static{}

main()

{}

构造函数

从而,我们得出:

建立一个非主类对象,顺序为:静态初始化块static{}-->初始化块{}-->构造函数constrUCtor;

那么,牵涉到继续,运行流程又如何?

看程序:

class JRun1Father{

JRun1Father(){

System.out.println("父类构造函数");

}

static{

System.out.println("父类静态初始化块");

}

{

System.out.println("父类初始化块");

}

}

public class JRun1 extends JRun1Father{

public JRun1() {

System.out.println("子类构造函数");

}

static

{

System.out.println("子类静态初始化块");

}

{

System.out.println("子类初始化块");

}

public static void main(String[] args) {

//System.out.println("主方法)");

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有