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”,最后输出的结果依然是“ 错误! ”

原文地址:https://www.cnblogs.com/chenyuan7/p/9529216.html