JavaSE基础,
JavaSE基础,
为什么Java主函数要写成public static void main(String[] args),而不写成其他格式,可能我们已经习以为常,不去追究了!当然,这也是一个老话常谈的话题。那下面我们来系统的解析一下Java的main函数。
1.主函数有什么特殊之处?
首先,main函数的格式是固定的,毋庸置疑的。其次,main函数是JVM识别调用的入口函数。
2.public static void main(String[] args)都代表什么,为什么不选别的?
别急,我们一个一个看。
public:访问权限修饰符。因为权限必须最大,所以使用public。(具体的权限信息找度娘)。
static: 静态修饰符。首先你必须知道main方法是一个程序的入口,如果写成非静态,那么就必须实例化一个对象再来调用它,入口函数何必难为入口呢?写成static不需要实例化对象,直接用主函数所属类名调用即可。
void: 返回值类型空。那你可能要问,为什么不写成int? Java中,JVM对main函数有限制,不能有返回值。写成int,让void和jvm情何以堪?
main: 函数名。切记不要和关键字搞混。它只是一个被JVM识别的固定的名字。
String[] args: 参数类型以及参数名称。你可能还要问,为什么是String类型,为什么参数名是args? String类型是Java的规范,不是你我能决定的;而args完全可以写成其他的合法标识符。但是为了统一起见使用args,它代表arguments:参数的意思。
因此,定义成public static void main(String[] args)貌似是必须的。
3.来段code解释岂不是更舒坦?
代码如下:
class MainDemo
{
public static void main(String[] args)
{
System.out.println(args); //形参值。
System.out.println(args.length); //形参长度。
System.out.println(args[0]); //数组第一个元素值。
}
}
输出结果:(1)"[Ljava.lang.String;@6d06d69c" :[Ljava.lang.String是clss名字,[ 表示一维数组,[[表示二维数组,L表示是对象类型,java.lang.String对象的标准类名;@6d06d9c代表哈希值。由此可知:主函数参数是一个类型为String名称为args的一维数组做形参。
(2)0 表示没有传入参数,那怎样传参呢?待会告诉你。
(3)因为没有传入参数,所以数组的长度为0,所以访问第一个数组元素产生越界。
4.那么怎么向main函数传参呢?
简单修改上面的code,如下:
//需求:传入三个参数,并打印数组长度及元素值。
class MainDemo
{
public static void main(String[] args)
{
System.out.println(args.length);
System.out.println(args[0]); //数组第一个元素值。
System.out.println(args[1]); //数组第一个元素值。
System.out.println(args[2]); //数组第一个元素值。
}
}
输出如下:
注意:MainDemo和二哈之间必须有空格。
总结:希望我的文章对你有帮助。
参考:http://blog.chinaunix.net/uid-20423564-id-1949304.html
相关文章
- 暂无相关文章
用户点评