本文共 779 字,大约阅读时间需要 2 分钟。
JVM会先在常量池查找是否存在相同的字面常量,如果存在,则直接将引用指向已经存在的字面常量;否则在运行时常量池开辟一个空间来存储该字面常量,并将引用指向该字面常量。
String str1 = "hello world"; //"hello world"存储在常量池String str2 = "hello world"; //str2与str1地址相同,都指向常量池中的"hello world"String str3 = new String("hello world"); //str3存储在堆上
String是final类型,对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象。
对String进行操作
过程:将str中的内容取出,与“world”相加并存入一个新new的String中,再将str指向新new的String。如果频繁进行相加的操作,资源开销大String str = "hello";for(int i = 0; i < 100000; i++) str += "world"; //str += "world"; 等于StringBuilder stringBuilder = new StringBuilder(str);stringBuilder.append("world");
转载地址:http://ufqvb.baihongyu.com/