A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 0.oo~Heart 中级黑马   /  2015-9-6 23:31  /  595 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  • String s1 = "ab";
  • String s2 = "abc";
  • String s3 = s1 + "c";
  • System.out.println(s3 == s2);
  • System.out.println(s3.equals(s2));
  • 谁能给我讲讲啊????

3 个回复

正序浏览
不知道。。。。。。。。。。。。
回复 使用道具 举报
如图所示
在栈内存中定义的引用,指向堆内存的一个空间,每个空间有一个自己地址
虽然s2和s3所指向的空间装的东西一样,但他们俩指向的空间的地址不一样,
在这儿 == 比较的是地址,equals比较的是地址里的内容,
回复 使用道具 举报
好像是在java中如果2个字符串相同,就不会再开辟新的空间,会把地址值指向那个变量
比如A="";B的值和A一样的话,A的地址值就会指向B,不会再开辟空间如果有错请指导
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马