不可变String
String对象是不可变的。JVM对其做了一个优化,在内存中拓荒了一段地区作为字符串常量池。经由过程"字面量"情势建立的字符串对象都邑缓存并重用。
//"字面量"情势建立的字符串 String str = "abc";
字符串操纵符:"+" 和 StringBuilder
操纵符 “+”能够衔接String字符串。编译器有一个优化步伐,当编译源代码时发明一个盘算表达式一切参数都是字面量时,会直接举行盘算,并将效果编译到class文件中。
String str = "abcd"; String str1 = "ab"+"cd";//输出abcd 对象稳定 System.out.println(str==str1);//true
盘算表达式一方为变量,那末编译器会在运行期拼接,末了生成新对象,斲丧机能。
String str = "abcd"; String str1 = "ab"; String str2 = str1+"cd";//输出abcd 对象转变 System.out.println(str==str2);//false
StringBuilder
编译器在编译时也会自动援用StringBuilder的append()要领拼接,末了挪用toString()生成效果。但是在.calss字节码中每次拼接轮回都邑建立一个StringBuilder对象,假如字符串操纵庞杂,编写.java文件时建立一个StringBuilder对象举行拼接。
String的经常使用要领
以上就是String_字符串的细致内容,更多请关注ki4网别的相干文章!