博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
String关键字
阅读量:5073 次
发布时间:2019-06-12

本文共 469 字,大约阅读时间需要 1 分钟。

关于String和new String()见我写的前一篇博客

 

1、String的"+"运算

a、String str = "a" + "b" 字符串常量的直接相加。在编译阶段会生成一个新的字符串"ab",运行时会在字符串常量池中新建"ab"并把字符串str引用直接指向常量池中的"ab"

 

 

左边是.java源文件 右边是.class文件反编译之后

可以明显看出去 在编译阶段字符串"a" + "b"直接组合成"ab" 他们会指向字符串常量池中的同一地址。所以结果是true 

b、String str = new String("a") + new String ("b")

和String str1 = "a";String str2 = "b";String str = str1+str2;

这两种情况字符串对象的相加,jvm会生成一个新的stringBuilder对象进行append操作,返回的是新对象,所以是false。

 

 

转载于:https://www.cnblogs.com/wdfordream/p/10445380.html

你可能感兴趣的文章