-
String类特性
1. 一个字符占两个字节,不管是英文还是中文
2. 字符串本质是由字符数组存储的一组数据 private final char value[];
3. 通过双引号创建的字符串对象,其引用直接指向底层常量池中的地址,如果常量池没有则创建
4. 通过构造函数new创建的字符串对象,会先在堆中创建一个空间,其引用指向堆空间的对象地址,而该对象中有一个value[]属性,该属性的引用才会指向底层常量池中的地址,如果常量池没有则创建
5. 两个双引号的String对象相加的情况(例如 String str = "abc" + "def"; ),编译器会优化为一个字符串(即 String str = "abcdef"; ),所以两个双引号相加的情况只会在方法区创建一个对象
6. 当出现两个字符串常量相加的情况,会先创建一个容量为16的空的StringBuild对象,然后调用它的append方法依次传入第一个和第二个字符串,然后再调用String构造器<