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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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的地址则是指向方法区的字符串常量池,所以不会相等

2 个回复

倒序浏览
谢谢分享
回复 使用道具 举报
加油加油加油加油加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马