1.main方法上面的"String[] args"的作用
JVM负责调用main方法
JVM调用main方法的时候会自动传一个String数组过来
package array;
public class ArrayTest05 {
//这个方法程序员负责写出来,JVM负责调用。JVM调用的时候一定会传一个数组过来。
public static void main(String[] args) {
// TODO Auto-generated method stub
//JVM默认传递过来的这个数组对象的长度?长度为零。
//通过测试得出:args不是null
System.out.println("JVM默认传递过来的这个数组对象的长度"+args.length);//默认0
//数组对象创建了,但是数组中没有任何数据,数组的长度为零
//String[] strs = new String[0];
//这个数组里什么时候会有值?
//其实这个数组是留给用户的,用户可以在控制台上输入参数,这个参数会自动被转换为"String[] args"
/*例如这样运行程序:java ArrayTest05 abc def xyz
* 那么这个时候JVM会自动将"abc def xyz"通过空格的方式进行分离,分离完成之后,自动放到"String[] args"数组中
* 所以main方法上面的"String[] args"数组主要是用来接收用户输入的参数的
* 把 abc def xyz 转换成字符串数组:{"abc","def","xyz"}
*/
}
}
模拟一个系统,假设这个系统要使用,必须输入用户名和密码
package array;
public class ArrayTest06 {
//用户名和密码输入到String[] args数组当中
public static void main(String[] args) {
// TODO Auto-generated method stub
if(args.length != 2) {
System.out.println("使用该系统时请输入程序参数,参数中包括用户名和密码信息,例如:zhangsan 123");
return;
}
//程序执行到此处说明用户一哦净提供了用户名和密码
//接下来判断用户名和密码是否正确
//取出用户名
String username = args[0];
//取出密码
String password = args[1];
//假设用户名是admin,密码是123的时候表示登陆成功
//判断力昂个字符是否相等,需要使用equals方法
//if(username.equals("admin") && password.equals("123")) {
if("admin".equals(username) && "123".equals(password)) {//这样不会造成空指针异常
System.out.println("登陆成功,欢迎["+username+"]回来");
}else {
System.out.println("验证失败");
}
}
}