没有main函数时的Java程序的执行

Java初学者大都是从main函数在控制台打印HelloWorld来开始Java学习的, 其形式为:public static void main(String[ ] arg)。

首先,main方法是JVM(java虚拟机)自动调用,JVM调用main方法的位置自然不会在某个类中、或某个包中,因此只有当main方法在公有级别上时,才对JVM可见,所以mian方法需要public修饰,同理,main方法所在的类也需要public修饰符。

其次,由于main方法是所有程序的入口,也就是main被调用时没有任何对象创建,不通过对象调用某一方法,只有将该方法定义为静态方法,所以main方法是一个静态方法,既需要static修饰。

最后,JVM对于java程序已经是最底层,由它调用的方法的返回值已经没有任何地方可去,因此,main方法返回值为空,既需用void修饰。

因此Java的main函数只能写作这样的形式:public static void main(String[ ] arg)。

但是Java程序不一定需要main函数,那么不带main函数的Java代码如是怎样定义的呢。

只需要将main函数替换成static定义的代码片段即可:

 

static
{
    //your code here
}

最后需要注意的是,仅仅这么定义,在控制台运行时候仍旧会报错(编译可以通过):

 

需要在代码中加入System.exit(0);即:

 

static
{
    // your code here
    System.exit(0);
}

 

这样就能成功运行了^_^


20180904更新

不同JDK版本会有不同的结果,笔者使用jdk1.4版本可以正确得到以上结果,使用jdk1.8版本编译成功但是运行报错,所以读者应该慎重选择jdk版本。更多的版本测试结果请在评论区交流~

  • 12
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值