黑马程序员技术交流社区

标题: 关于字符串拼接的面试题(易错) [打印本页]

作者: 大霉蛋    时间: 2015-10-25 21:00
标题: 关于字符串拼接的面试题(易错)
public class StringDemo{          public static void main(String[] args){
          String s1 = "a";
          String s2 = "b";
          String s3 = "ab";
         System.out.println(s3 == s1 + s2);     //输出false
         System.out.println(s3 == "a" + "b"); //输出true
       }
}
解释:变量相加会在堆内存重新开辟空间,所以s1+s2的地址是指向堆内存的,
而s3的地址则是指向方法区的字符串常量池,所以不会相等


作者: 切比雪夫    时间: 2015-10-25 21:54
谢谢分享
作者: jyf823691221    时间: 2015-10-25 23:26
加油加油加油加油加油




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2