java.lang.String 是字符串
他的底层就是一个字符数组,所以有很多的特性就是数组的特性
1.字符串一旦创建,这个字符串对象不能更改
2 字符串需要使用 "" 双引号表示
3 为了提高字符串访问效率,提出了一个缓存机制,字符串常量池
因为String一旦创建,字符串对象不可更改,
字节数组转换字符串 : new String(bytes,起始值,个数);
字符串转字节数组 : getBytes();
字符数组转字符串 : new String(chars,起始值,个数);
字符串转字符数组 : toCharArray();
以尽量不要使用String进行大量的字符串拼接操作
1 StringBuffer 和 StringBuilder是什么?
是一个可变的字符串缓冲区,适合做拼接操作
底层也是char数组,只不过默认长度是16,而字符串内容多少长度就是多少
2 原理
先定义好长度,以容纳更多字符
如果预留的空间长度不够,会进行自动扩容
默认长度为16,扩大容量为 (当前容量+1) * 2 , 16 -> 34 -> 70
3 StringBuffer 和 StringBuilder 区别
StringBuilder : 非线程安全,在多线程环境下使用,可能出现问题,所以常用于方法中
StringBuffer : 线程安全,在多线程环境下使用,不会出现问题,所以常用于类中