先来看一段代码
public class Test {
public static void main(String[] args) {
System.out.println(args.length);
for(int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
//输出 0
可以看到JVM在调用main()函数时,有一个数组长度为0的字符串数组作为参数传入了函数。这里注意不要与空引用混淆,空引用没有指向任何一个内存地址,这里的agrs不是空引用,否则会出现空指针异常,args保存了该数组的内存地址,只不过这块内存空间中没有存储数据。
那么main函数中为什么要传入一个字符串类型的数组参数?
这个过程相当于声明了一个args字符串数组(String[] args)用来接收用户在控制台中输入的参数。输入的参数以空格分离,每一个字符串都作为该数组的元素 。
- cmd控制台
- eclipse试调
说到这里,我们也许可以基于这个认识,写一段安全控制的代码,来检测用户输入控制台的数据是否符合要求。
public class Test {
public static void main(String[] args) {
System.out.println("请输入您的账号和密码");
if(args.length != 2) {
System.out.println("抱歉您输入的账号或密码不合法");
}
else {
if("iamsanjiang".equals(args[0])&&"12345".equals(args[1])) {
System.out.println("叁江,欢迎回来");
}
else {
System.out.println("抱歉,您非本机用户");
}
}
}
}
运行结果如下
- 输入数据数量不符
- 账号密码不对应
- 用户正确



