浅谈Java文件执行顺序、main程序入口的理解

网友投稿 350 2023-01-11


浅谈Java文件执行顺序、main程序入口的理解

在我们通过JVM编译java后缀名的文件时,JVM首先寻找入口(main方法)

public static void main(String[] args)

1、由于在入口时,未调用任何对象,该方法只能设置为static静态

2、JVM为Java的最底层,所以即使有返回结果,结果也无处可去,因此该方法必然是void无返回值

3、由于main方法是入口,被JVM自动调用,只有将该方法设置为public公有级别才能对JVM可见

综上,入口main方法只能写为

public static void main(String[] args)

在我们没有写main方法时,系统会自动会为我们添加一个无参mian主方法,该方法的添加位置为public类中首行(之前也提到过,只有添加在public级别中才对JVM可见,可以自动调用)

注意:如果在java文件中未包含任一公共类(public class),此文件依然可以通过编译,但是主动运行由于找不到public class,就无法自动添加main方法,JVM找不到程序入口,运行会报错,即编译通过运行报错,缺少public class的文件需要等待被其它java文件调用,无法作为入口。

package j2se;

class X{

Y y=new Y();

public X(){

System.http://out.print("X");

}

}

class Y{

public Y(){

System.out.print("Y");

}

}

//public class Z extends X{

// Y y=nknCxwDPDew Y();

// public Z(){

// System.out.print("Z");

// }

// public static void main(String[] args) {

// new Z();

// }

//}

报错:

错误: 找不到或无法加载主类 j2se.Z

原因: java.lanhttp://g.ClassNotFoundException: j2se.Z

当我们加上public类(public class)后,编译运行通过,根据返回结果可以清楚看到程序的执行顺序,代码如下:

package j2se;

class X{

Y y=new Y();

public X(){

System.out.print("X");

}

}

class Y{

public Y(){

System.out.print("Y");

}

}

public class Z extends X{

Y y=new Y();

public Z(){

System.out.print("Z");

}

public static void main(String[] args) {

new Z();

}

}

运行结果:YXYZ

根据这个运行结果,我们可以看出,程序运行后JVM编译顺序为,JVM直奔public class中main()方法作为入口,并开始编译执行

public static void main(String[] args)

以上所述是给大家介绍的Java文件执行顺序、main程序入口的详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:包含资金存管接口测试的词条
下一篇:Java实现实时监控目录下文件变化的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~