java ==与equal()
一般,==比较的是两个对象的引用(即内存地址)是否相等;而equals()比较的是两个对象里的内容(即内存地址里存放的东西)是否相等。
放上栗子:
1 /** 2 * 要求: 通过键盘输入用户的用户名和密码 3 * 若用户正确输入登录成功 4 * 否则失败 5 */ 6 public class Demo8 { 7 public static void main(String[] args) { 8 Scanner sc = new Scanner(System.in); 9 System.out.println("请输入用户名:"); 10 String username = sc.nextLine(); 11 System.out.println("请输入密码:"); 12 String userward = sc.nextLine(); 13 show(username, userward); 14 } 15 16 public static void show(String x, String y) { 17 if (x.equals("张三") && y.equals("123456m")) { 18 // if (x == "张三" && y == "123456m" ) { // String 不是基本数据类型,不能用 == ,String 判断相等用equals
20 System.out.println("正确!"); 21 } else { 22 System.out.println("错误!"); 23 } 24 } 25 }
输出:
请输入用户名:
张三
请输入密码:
123456m
正确!
18行:因为用“ == ”比较两个对象时,比较的是两个对象的内存地址,所以就算输入的用户名是“ 张三 ”,密码是“123456m”,最后输出的结果依然是“ 错误! ”