String中的区别:
==是判断左右两端的数据是否一致
equals:object类提供的一个方法,用来判断两个对象是否相等
equals:可以自己重写
字符串的判断一定要用equals来判断。
- 直接String一个变量:
package equals;
public class test {
public static void main(String[] args) {
String a="love";
String b="love";
System.out.println(a==b);
System.out.println(a.equals(b));
}
}

虽然String也是一个类,按理说两个对象的地址应该不一样。但是由于内部字符串很多,java设计的时候把String的值作为==的判断条件,重复利用了字符串单元。(String类特殊)
- String new对象:
package equals;
public class test {
public static void main(String[] args) {
String a=new String("love");
String b=new String("love");
System.out.println(a==b);
System.out.println(a.equals(b));
}
}


首先String(“love”)造了一个对象,然后又分别new了两个对象去引用love,并把new的对象分别赋值给a b。
两个new出来的对象的内存地址肯定不一样。所以==报false。
登陆小测试:
package equals;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
String admin="Betsy";
String password="2021";
Scanner sc=new Scanner(System.in);
System.out.println("请输入用户名:");
String user=sc.nextLine();
System.out.println("请输入密码:");
String pass=sc.nextLine();
if(user.equals(admin)&&pass.equals(password))
System.out.println("登陆成功");
else
System.out.println("登陆失败");
}
}

注意这里要用equals。
这篇博客探讨了Java中字符串`==`和`.equals()`方法的区别。`==`用于判断两个字符串对象是否指向相同的内存地址,而`.equals()`则比较字符串的内容是否相同。在Java中,对于常量池内的字符串,`==`可能返回true,因为它们可能指向同一个实例。然而,当使用`new String()`创建字符串时,即使内容相同,`==`也会返回false,因为它们是不同的对象。在登录验证等场景中,必须使用`.equals()`来比较字符串内容。

被折叠的 条评论
为什么被折叠?



