区分String[] args和String args[]

Java语言中,有这么两个书写方式,看上去差异很小,实质上意义完全不同。


public static void main(String[] args)


public static void main(String args[])


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函数,所以当然出错了。


其实String args[]main函数java程序的入口地址,java虚拟机运行程序的时候首先找的就是main方法.C语言里面的main()函数的作用是一样的.只有有main()方法的java程序才能够被java虚拟机欲行,可理解为规定的格式


对于里面的参数及修饰符

public:表示的这个程序的访问权限,表示的是任何的场合可以被引用,这样java虚拟机就可以找到main()方法,从而来运行javac程序

static:表明方法是静态的,不依赖类的对象的,是属于类的,在类加载的时候main()方法也随着加载到内存中去

void:main()方法是不需要返回值的

main:约定俗成,规定的



OK,讲解完毕。欢迎点赞








猜你喜欢

转载自blog.csdn.net/kingofonepiece/article/details/50482724