java判断字符串相等

在java中,判断字符串相等有几种不同的情况:

1.

public class Test {
	public static void main(String[] args) {
		String a="aaa";
		String b="aaa";
		System.out.println(a==b);
	}	
}

运算结果:
在这里插入图片描述

这里我们将两个变量a和b都赋值了“aaa”字符串,执行之后发现两个变量相等了,这是因为字符串“aaa”被放在了方法区的字符串常量池中,两个变量实际上都是指向常量池的同一个地址,因此相等。

2.

public class Test {
	public static void main(String[] args) {
		String a=new String("aaa");
		String b=new String("aaa");
		System.out.println(a==b);
	}	
}

运算结果:
在这里插入图片描述
这里我们给两个变量分别开辟了两个空间,在两个空间中存放了“aaa”字符串,两个空间的地址不同,因此直接用==判定的话会造成不相等

3.

public class Test {
	public static void main(String[] args) {
		System.out.println("aaa"=="aaa");
	}	
}

运算结果:
在这里插入图片描述
这种情况很简单,就是单纯地判断两个字符串的值是否相等而已,当然是相等的

4.

public class Test {
	public static void main(String[] args) {
		String a=new String("aaa");
		String b=new String("aaa");
		System.out.println(a.equals(b));
	}	
}

在这里插入图片描述
在实际中,我们通常使用的是.equals这种方法来判断两个字符串是否相等,equals本来是用来判断两个对象是否相等的,这里java对字符串做了重载。

猜你喜欢

转载自blog.csdn.net/qq_37856300/article/details/84030973