默认是UTF-16编码
所有的字符串变量或者常量都是String的实例
字符串是不可变constant的,但是字符串缓冲区string buffer支持可变的字符串
正因为String对象是不可变的,所有能被共享
除非另有说明,否则将null参数传递给构造函数或者此类中的方法将导致NullPointerException抛出。
String表示UTF-16格式的字符串
字符串连接运算符+的实现是由编译器决定,例如,javac编译器可以使用 StringBuffer,StringBuilder或java.lang.invoke.StringConcatFactory来实现运算符,具体取决于JDK版本。
字符串转换的实现通常是通过 toString方法实现的,由Object定义并由Java中的所有类继承。
private final byte[] value 字符串字符的存储
private final byte coder 字符数组value里面的字节的编码标志符,有两种LATIN1和UTF16
private int hash Default to 0 缓存字符串的哈希码
static final boolean COMPACT_STRINGS;
static {
COMPACT_STRINGS = true;
}
如果禁用字符串压缩,则{@code value}中的字节始终以UTF16编码。
char value[]转换成String public String(char value[])
char charAt(int index) 返回指定的字符串索引位置的char值,索引范围为0-字符串长度-1
字符串的长度,默认用UTF-16编码,长度也就是字面值上的长度
int codePointAt(int index)返回指定索引位置处的代码点,索引范围为0-字符串长度-1
String trim() 删除字符串的前置和后置空格
static String valueOf(boolean b) 返回基本类型的字符串形式
String toUpperCase() 把字符串变成大写
String toLowerCase() 把字符串变成小写
char[] toCharArray()