关于Java的main函数:对于学过Java语言的人在熟悉不过了,他是Java虚拟机规范指定的一个具有特殊形式、并且有别于其他函数的的一个特殊函数。
其基本格式:public static void main(String[] args){ ... },详细的不在多说,今天主要讨论 args参数。
相信对多数Java初学者,应该和我都有一样经历,学了很久Java,但是并不知道args有什么用。对于做Java web方向的开发者更是很少用到,因为Java web的程序都交给服务器执行,不需要main函数作为入口。但是,如果你要开发一个可执行的Jar包,并且在命令行下和用户交互的话,这个args就派上用场了(笔者工作中就遇到了开发linux系统下的Java工具)。好了说了这么多啰嗦话,下面直接进入主题:
首先:从参数形式上很容器看出 args是一个String类型的数组
1. args接收参数测试:
package com.hh.test;
public class ArgsTest {
public static void main(String[] args) {for(String str : args){
System.out.println(str);
}
}}
测试结果:
这一步是本文重点)
public class ArgsTest {
public static void main(String[] args) {
if(args != null){
System.out.println("输入的第一个参数是:" + args[0]);
} else{
System.out.println("您没有输入参数");
}
}
}
测试结果:
那么如何控制才能进入else代码块呢?笔者在做这一块的时候也找了很多资料,没有收获。最后我把代码换成这样测试通过:
3. 过滤没有给args输入参数代码:
public class ArgsTest {
public static void main(String[] args) {
if(args.length > 0){
System.out.println("输入的第一个参数是:" + args[0]);
} else{
System.out.println("您没有输入参数");
}
}
}
测试结果:
总结:通过以上测试,可以看出来,对于输入参数是否为空的控制,通过数组长度来
作为判断是有效的。我也在思考着其中的原因:
个人观点:因为 String[ ] args 他就是一个数组,而args就是一个指向这个数组的引用,
args就是数组的首地址(虽然Java中屏蔽了指针和地址的概念)。所以即便你没有给
数组传值,仅仅代表数组中没有元素,数组内容为空,但是数组已经被系统创建好,
数组的引用也就是args不是空值。所以,我就想到了用数组的长度是否为0来作为条件
,测试通过。
最后声明:以上是我个人工作中遇到得一个小问题,为了让大家遇到这些问题的时候
少走弯路,就写了这篇文章。笔者才疏学浅,难免有不当和错误之处,希望广大读者
见谅并提出宝贵意见,彼此学习,共同成长。(第一次写博客,代码排版,文章排版
都不熟悉,还望见谅)