java程序中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

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

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

于是,昨天晚上想了很久的问题终于搞明白了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值