main函数我们经常使用,这篇文章我们来讲一讲它。
我们举个例子。
class MainDemo
{
public static void main(String[ ] args)
{
System.out.println("Hello World");
}
public static void main(int x)
{
}
}
那么这个代码能否运行呢?
我们知道函数都有个特性是重载,这个函数上下两个函数名是一样的,但是参数列表是不一样的,说明他们已经重载了。所以这个代码是正确的的。但是虚拟机执行的时候是先执行上面那个,因为虚拟机运行的是名称为main,参数列表为字符串列表的那个。
另外我们的main函数只有一个地方可以改,就是这个args。可以改成任何合法的变量名。
那么虚拟机调用main函数传的是什么东西呢,我们可以验证一下。
class MainDemo
{
public static void main(String[ ] args)
{
System.out.println(args);
}
}
运行结果如图
这个传的是什么呢?我们可以发现这是虚拟机往里面扔了一个数组实体。它肯定也是有长度的。jvm在调用主函数时,传入的是new String[0]。我们也是可以往里面传我们想要传的值的。最方便的是字符串,我们来试一下。
class MainDemo
{
public static void main(String[ ] args)
{
System.out.println(args[0]);
}
}
我们先编译这个代码。
可见编译成功但是运行不成功,启动虚拟机的同时我们要执行那个类直接传给虚拟机就行了,我们直接在MainDemo后面打出来就行了。如图
它就把hah打印出来了。然后它的数组长度为3.
那么我们想把它们全打印出来怎么打印,我们只需把代码改一下就行了。
class MainDemo
{
public static void main(String[ ] args)
{
for(int x=0;x<args.length;x++)
System.out.println(args[x]);
}
}
然后编译再运行。结果如图。