string
字符序列不可变,底层代码final见。
一个操作对象现,大量操作浩资源。
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
/** The value is used for character storage. */
//String源码fianl修饰了类和 value数组 所以string字符串不可变
private final char value[];
String中的常见问题
public class StringDemo {
public static void main(String[] args) {
String str = "123sdhfds";
String[] strs = str.split("");
System.out.println(Arrays.toString(strs));
//每对字符串做一个操作实际上就是新生成了一个字符串原先字符串保持不变
String str1 = str.substring(0,3);
System.out.println(str1);
String reStr = str.replace('s','郭');
System.out.println("reStr : "+reStr);
System.out.println("被操作后的str : "+str);
String stri = "javaHello";
//true 编译器做了优化直接在编译的时候就将字符串拼接了
String stri1 = "java"+"Hello";
System.out.println(stri == stri1);//true
//在编译的时候不知道变量存的啥 所以没办法优化
String ss = "java";
String ss1 = "Hello";
System.out.println(ss== ss1);//false
}
}