java string == 比较_JAVA中String类的比较

本文探讨了Java中字符串`==`与`.equals()`的区别。`==`比较字符串对象的引用,而`.equals()`比较内容。当直接赋值时,多个引用可能指向同一字符串常量池中的对象,导致`==`返回true。通过`new String()`创建的字符串则在堆中,`==`返回false。使用`.equals()`可确保内容比较。
摘要由CSDN通过智能技术生成

首先给大家看一段代码

package javaapptest;

public class JavaAppTest {

public static void main(String[] args) {

String str1 = "Hello";

String str2 = new String("Hello");

String str3 = str2 ;

System.out.println(str1==str2);

System.out.println(str1==str3);

System.out.println(str2==str3);

}

}

运行结果为: false

false

true

下面给大家说一下为什么前两个比较会为false,我们这里用 “==”符号不会比较字符串的内容 而是比较字符串地址里面的值,下面上一张图给大家看就明白了;

12d08f2916a2528332f5d288169b650d.png

如果把赋值代码改成下面代码

String str1 = "Hello";

String str2 = "Hello";

String str3 = "Hello"

它会把str1,str2,str3都去指向一个Hello,不会再开辟新的空间

89e2b62d11866c3741468add7b40608b.png

如果要比较字符串里面的内容我们可以使用equals来比较字符串的内容,如下代码

package javaapptest;

public class JavaAppTest {

public static void main(String[] args) {

String str1 = "Hello";

String str2 = new String("Hello");

String str3 = str2 ;

System.out.println(str1.equals(str2));

System.out.println(str1.equals(str3));

System.out.println(str2==str3);

}

}

就写到这里了,希望能帮到你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值