为什么 不加 String[] args  main方法就不会执行?到底这个参数起什么作用?

解决方案 »

  1.   

    main方法中有一个输入参数,类型为String[],这个是java的规范,main()方法中必须有一个入参,必须String[],至于字符串数组的名字,这个是可以自己设定的,根据习惯,这个字符串数组的名字一般和sun java规范范例中mian参数名保持一致,取名为args。
     
    因此,main()方法定义必须是:“public static void main(String 字符串数组参数名[])”。
      

  2.   

    入口方法的签名就是public static void main(String[] sdss)必须是public的
    必须是static的
    必须是void的
    方法名必须是main
    方法参数必须是String数组jvm启动就按照这个标准去找这个方法,找到就执行,找不到就报错
      

  3.   

        如果你在命令行输入命令来执行一个java可执行文件,有时候在启动的时候会需要参数
        比如一个类叫test 它可以从命令行获取一个String变量 并把它输出 ,则命令行命令为:
        java test value     这个value就是存在那个String[] args  中的一个变量 程序输出结果就是 :
        value
      

  4.   

    看下面的简单代码
    class Test{
        public static void main(String[] args){
            if(args.length>0){
        for(int i=0;i<args.length;i++){
    System.out.println(args[i]);
        }
    }
        }
    } String类型的数组args主要用来接受命令行的参数, 但命令行的参数不包括 java Test 这样的字符串,如果在命令行输入 java Test red,那么就会打印出red。
    当在命令行输入参数,执行的时候这个参数就会保存在args这个数组中, 我们就可以用args获取命令行的这个参数
     
     对于main方法来说,它是由java虚拟机调用的,所以是public
     调用的时候不需要产生任何对象,所以声明为static
     main方法是由java虚拟机调用,不需要产生返回值,所以返回类型为void
      

  5.   

    jvm会在启动的时候查找这个函数啊void fun1(){}和void fun1(int a){},你觉得是一个函数吗?呵呵所以参数是不可以少的。
      

  6.   

    必须是string数组,args只是个名字,可以随便换
      

  7.   

    顶一下
    这是jvm规范,定死的
    楼主不必太纠结
      

  8.   

    可以用args向main传参的~用命令行的时候直接在 java 类名 参数