为了账号安全,请及时绑定邮箱和手机立即绑定

equals与==的问题

public class StringBuildermethod {


public static void main(String[] args) {

// 创建一个空的StringBuilder对象

StringBuilder str=new StringBuilder();

        

// 追加字符串

str.append("jaewkjldfxmopzdm");

        // 从后往前每隔三位插入逗号

for(int i=str.length()-3;0<=i;i-=3){

   str.insert(i,",");

}

String str2=str.toString();

StringBuilder str3=str;

        System.out.println(str);

System.out.println(str2);

        System.out.println(str2.equals(str));//为什么这里不能用str2==str进行比较?

        System.out.println(str3==str);//这里可以用==进行比较

       

}


}


正在回答

2 回答

基本数据类型用“==”,比较的是两变量的值,你这个不属于基本变量类型,所以“==”比较的是两个对象的内存存储地址,不是同一个new出来的对象,基本上不可能相等的,这时应该用equals()来判断。

0 回复 有任何疑惑可以回复我~

==代表引用地址是否相同,equals判断str的值是否相同

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409792    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

equals与==的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信