String字符串相等判断

== :比较的是内存地址值
equals: 比较的是值,对象的equals()可以被重写

java中字符串的比较:==

1String a="abc"; 2String b="abc"

那么a==b将返回true。因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存 一份,所以a和b指向的是同一个对象;

1String a=new String("abc"); 2String b=new String("abc");

那么a==b将返回false,此时a和b指向不同的对象。

用equals方法比较的是字符串的内容是否相同

1String a=new String("abc"); 2String b=new String("abc"); 3 a.equals(b);

将返回true。

如果是
String s1 = “abc”;
String s2 = “a”;
String s3 = “bc”;
String s4 = s2 + s3;
System.out.println(s1 == s4);
A:false,因为s2+s3实际上是使用StringBuilder.append来完成,会生成不同的对象


String s1 = “abc”;
final String s2 = “a”;
final String s3 = “bc”;
String s4 = s2 + s3;
System.out.println(s1 == s4);
A:true,因为final变量在编译后会直接替换成对应的值,所以实际上等于s4=”a”+”bc”,而这种情况下,编译器会直接合并为s4=”abc”,所以最终s1==s4。

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java采坑之路

判断相等字符串判断相等        String str1  null;        String str2  "java金融";       // str1.equals(str2);  错误的写法        str2.equals(str1); // 常量写前面        Objects.equ

java中字符串相等判断

字符串的判断有2种:        1、判断地址是否相等 用:        2、判断值是否相等 用:equals方法Object类作为所有类的超类,而Object类的equals方法是直接比较地址的,源码如下:publicbooleanequals(Objectobj){

阿里最新面试必备项之Java的String类,持续更新中!

最新腾讯面试必备项之Java的String类,持续更新中!1.1String的特性String类:代表字符串。Java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现。String是一个final类,代表不可变的字符序列。String字符串是常量,用双引号引起来表示。他们的值在创建之后不能更改。String对象的找字符内容是存储在一个

补充关于equals的比较方式

补充(equals比较)java.lang.String类中的方法equals判断相等依据策略:如果与目标相等返回0,小于目标返回值小于0,大于目标返回值大于0language@NativestaticfinalbyteLATIN10;@NativestaticfinalbyteUTF161;language/Compa