java程序中String args[]起什么作用?

String args[]或者String[] args表示给主方法传一个字符串数组.String args[]String[] args 没有区别,都可以执行,但推荐使用 String[] args,这样可以避免歧义和误读。而args是一个字符串数组的变量名,不是关键字,是arguments的缩写,只是一个默认名,一般都习惯性照写.

class Example{
  public static void main(String args[]){
  System.out.println("This is a simple Java program.");
  }
}

疑问: 既然String args[]或者String[] args表示给主方法传一个字符串数组,那么System.out.println(args[]);为什么是错误,args[]不就是那个字符串This is a simple Java program吗?

String args[]与This is a simple Java program是什么关系?如果没关系,为什么程序中去掉String args[]会出现错误?

不带String args[]的main函数和带String args[]的main函数有什么区别吗?

答案:

String[] args这个字符串数组是保存运行main函数时输入的参数的,例如main函数所在的类名为test 那么你在cmd运行

java test a b c 时,args[0]=a,args[1]=b,args[2]=c   

你就可以在你的程序中调用你输入的这些变量了。

args[]不就是那个字符串This is a simple Java program吗?

完全不是的,你理解不对。这样好了,你在运行的时候加个参数,比如 java test XX。然后在你的main函数里面加这段话:System.out.println("arg is"+args[0]),然后看看输出是什么? 是不是这个:

This is a simple Java program
arg is XX

你还可以试试这样,在运行时输入java test xx yy zz,并且在你的main函数里面加这段话:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然后看看输出是什么? 是不是:

This is a simple Java program
arg is xx yy zz

如果没关系,为什么程序中去掉String args[]会出现错误? 之所以去掉会出错在于,不带String args[]的main函数和带String args[]的main函数,本质上已经不是同一个函数了,java 本身不存在不带String args[]的main函数,所以当然出错了。

在每个java程序中都有一个方法,public static void main(String[] args)方法,这个参数看了好久没看懂,但是细细看来,还是挺简单的,所有的方法的参数都是一个道理,而这个main方法有所不同的是:它是所有方法中最先运行的一个,所以没有其他方法给它传递参数,所以需要靠运行时命令行输入参数,所以String args,接收的是命令行的输入,

package Test_main;

public class Test_main {
 public static void main(String[] args) {
  System.out.println("args[0] is "+ args[0]);
  System.out.println("args[1] is "+ args[1]);
  System.out.println("args[2] is ");
 }
}

写了一个测试程序,在Eclipse上运行,以往都是点击一下运行就行了,今天试了几次都不行,然后把放到命令行去运行(cmd那个),编译:javac Test.java 运行:java Test hello world 显示:

args[0] is hello
args[1] is world
args[2] is

是可以运行的,心想:Eclipse这么强大这个肯定可以办到,后来网上一查,其实很简单,就是打开Run里面的Debug configuration,里面的arguments里输入你想要输入的参数,然后保存,出来点击运行按钮,OK

java中String[] args有什么作用.png

结果出来了,显示的是刚刚输入的参数

args[0] is hello
args[1] is world
args[2] is

参考文章:https://blog.csdn.net/wuha0/article/details/7069433


已有 0 条评论

    感谢参与互动!