问答详情
源自:2-6 Java 中的 StringBuilder 类的常用方法

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);//这里可以用==进行比较

       

}


}


提问者:慕移动8447653 2018-06-29 21:54

个回答

  • 成功入行的秃头少女丶
    2018-07-25 18:25:30

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

  • Alexon
    2018-06-30 11:21:16

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