1.String
1.1 是什么
String是java.lang.String,因为java.lang是java核心类,所以不需要导包
String简单来说就是字符串类,底层是char数组,所以String的特性几乎和数组一致
1.字符串一旦创建,该字符串对象不能改变
2.为了提高字符串的访问效率,java虚拟机使用了一种缓存技术,可以对字符串操作更加简单方便,更加高效(字符串常量池)
3.字符串会被保存在静态区中的常量池中,可以复用性增强
当我们用到一个重复的字符串的时候,会去常量池中进行检索,如果有该字符串,则直接指向,如果没有就创建
1.2 基本使用
1.3 构造方法
1.4 常用方法
1.5 注意
使用String不推荐进行频繁的字符串拼接操作
因为字符串一旦创建不可以改变,只要拼接,就会创建新的字符串对象
浪费空间,效率还低,就等于是用定长数组频繁做添加操作一样
2.StringBuffer 和 StringBuilder
2.1 是什么
都在java.lang下,使用不需要导包
1.StringBuffer和StringBuilder是什么
是一个可变的字符串缓冲区,底层也是数组,只不过该数组会进行自动扩容适合做字符串拼接操作
2.原理:
预先在内存中创建一个空间,保存字符数组
如果预留空间不够了,会进行自动扩容,用来容纳更多的字符
默认长度为16,扩大容量为(原长度+1)*2 ; 16-> 34 - >70
3.StringBuffer和StringBuilder的区别
StringBuffer:县城安全,在多线程环境中使用,没有问题
StringBuilder:非线程安全,多线程环境下使用
2.2 使用方式