打错字了。。。。 String s1 = "a"; String s2 = s1 + "b"; //编译后s2=new StringBuilder.append("a").append("b").toString();,这是在堆上分配,s2引用的是堆上的"ab" String s3 = "a" + "b"; //编译后s3="ab",在常量池,s3引用的常量池的"ab";
[quote=引用 1 楼 gaofuqi 的回复:] 编译器的优化: String s1 = "a"; String s2 = s1 + "b"; //编译后s2=StringBuilder.append("a").append("a").toString(); String s3 = "a" + "b"; //编译后s3="ab";
编译器的优化: String s1 = "a"; String s2 = s1 + "b"; //编译后s2=StringBuilder.append("a").append("a").toString(); String s3 = "a" + "b"; //编译后s3="ab";
62,620
社区成员
307,251
社区内容
加载中
试试用AI创作助手写篇文章吧