Java中main()方法以及命令行参数的若干注意

 

main方法的完整定义语法:public static void main(String[] args){}

命令行格式:java [命令参数] 文件名 [args[0](用户参数) args[1] ...    比如 java - cs AClass a b c<enter>


1. 关于main()方法中的修饰符public
    java虚拟机规范并没有要求main一定是public的,所以public可以省略,它只是为了main()方法可以从任意一个java运行环境中调用。不过没有public 虽然编译无错误,但是虚拟机无法启动应用程序。


2. 关于main()方法中的关键字static
    静态方法不能访问实例字段。但可访问自身类中的静态字段。
      
    main方法是且必须是一个静态方法,所以static 必须写。为了不需要构造类实例。如果没有static,运行时出错。


3 . main()方法的返回类型和返回值
    main(String[] arg)如果不写void会有编译错误
    如果不写static和[]会有运行错误

    main()方法并不向操作系统返回“退出代码”。java中,如果main方法正常退出,Java程序的退出代码为0,表示成功地实行完毕程序。若要用不同的退出代码终止程序,则使用System.exit方法。
    
    因为main()方法是可以重载的,所以返回类型可以void ,int ,boolean... 但如果从应用程序的入口main()方法的角度看,则只能用void返回。


4. main()方法及命令行参数相联系的若干注意

    当缺少String[]args时,虽然编译可以通过,但是运行时无法获取有效的main方法,运行时候会报错。其中方法参数名字args可以改变。

    要知道知道String数组长度,可以直接用args.length即可。

    当没有用户参数的时候,如果进行args[0]等的访问,会抛出一个数组越界异常。

    如下操作,由于main()方法的参数类型正确,所以编译可以通过,但运行时会出错。

public class Test
{
public static void main(String argv)
{
   System.out.println("hello cruel world");
}
}

   如果超过边界访问args[],编译正常,运行出错。
如:
public class Test{ 
   public static void main(String[] args){ 
   String foo=args[1]; 
   String bar=args[2]; 
   String baz=args[3]; 
    } 
    } 
   java Test Red Green Blue 
what is the value of baz? 
A. baz has value of "" 
B. baz has value of null 
C. baz has value of "Red" 
D. baz has value of "Blue" 
E. baz has value of "Green" 
F. the code does not compile 
G. the program throw an exception 
Answer:G 

5. main()方法只作为Java应用程序的入口。Applet程序不需要main()方法,一般由浏览器不同方式启动,其入口程序一般为init()方法。


6. main可作为普通方法名。
如:
public class Droitwich
{
class one
{
private class two
{
   public void main()   //注意这里的main方法
   {
    System.out.println("two");
   }
}
}

显示:编译正常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值