1. String存在的问题
认识String
- 字符串广泛应用在编程中,在 Java 中字符串属于对象,Java 提供了
String
类来创建和操作字符串
String
创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上
String
类是不可改变的,所以你一旦创建了String
对象,那它的值就无法改变了
假设有两个String str1
和str2
,在创建这两个String
类的时候计算机会给他们各自一块内存,当执行str1 = str1 + str2
时,按逻辑是str1的内存内容被修改,内存只占了两块,但实际情况是创建了第三块内存str1(str1+str2)
2. Stringbuilder以及链式调用的含义
StringBuilder和StringBuffer类
- 可以解决对字符串进行修改
StringBuffer
线程安全,性能低,在多线程环境下使用
StringBuilder
非线程安全,性能高,在单线程环境下使用
和String的区别
- 创建单个
String
类是创建单个对象,创建多个就是创建多个对象,StringBuilder
是对对象进行操作,一直操作的都是一个对象
trimToSize()
方法用于最小化用于字符的存储,去除未使用的空间,也可以用于将动态数组中的容量调整为数组中的元素个数
stringBuilder.trimToSize();