永发信息网

String a="abcd"; String b="ab"+"cd"; System.out.println(a==b);

答案:4  悬赏:80  手机版
解决时间 2021-02-15 15:06
  • 提问者网友:送舟行
  • 2021-02-14 17:47
String a="abcd"; String b="ab"+"cd"; System.out.println(a==b);
最佳答案
  • 五星知识达人网友:笑迎怀羞
  • 2021-02-14 17:53
string stringbuff 存放地址不一样,
public static void main(String[] args) {
String a="abcd";
StringBuffer c = new StringBuffer("ab");
c.append("cd");
System.out.println(a.equals(c.toString()));
}
这就一样了
全部回答
  • 1楼网友:你可爱的野爹
  • 2021-02-14 19:40
虽然很久前的了,我还是回答下。a==b比较的是a和b的内存地址,而a.equals(c)比较的是a和c的值,所以前一个返回值是false,而后一个是true。
  • 2楼网友:人類模型
  • 2021-02-14 19:13
字符串常量是储存在数据区的,数据区只要equals,地址就相等追问String a="abcd";
StringBuffer c = new StringBuffer("ab");
c.append("cd");
System.out.println(a.equals(c))
其中a和c的值都是“abcd” ,为什么返回的值是false?追答只要是new出来的都放在堆内存中,a指向的地址在数据区,而c指向堆内存,他两的内地址不一样,所以是FALSE
  • 3楼网友:野慌
  • 2021-02-14 18:32
StringBuffer 最后有一步操作是 new String()
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯