Java-14.equals和==

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

String中的区别:

==是判断左右两端的数据是否一致
equals:object类提供的一个方法,用来判断两个对象是否相等
equals:可以自己重写
字符串的判断一定要用equals来判断。

  1. 直接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类特殊)

  1. 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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值