Java进阶API第三章
Java进阶API第三章
一.String存在的问题
1.认识String的存储:
2.String的特点:
String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。
问题:
一但创建就无法修改,所以只能一直创建。 这样会出现大量的内存占用,浪费大量空间。
解决: 使用 StringBuffer & StringBuilder 类
二.StringBuffer 和 StringBuilder 类
1.介绍:
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
- 在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。
- StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
- 由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。
2. StringBuilder
package com.google.apl;import org.junit.Test;public class Testing {
@Testpublic void dome(){StringBuilder stringBuilder = new StringBuilder();// 1.添加字符串,方法append// 方式一stringBuilder.append("Hello");stringBuilder.append("World");System.out.println(stringBuilder);// 方式二:链式调用stringBuilder.append("Hello").append("World");}
}
StringBuilder stringBuilder = new StringBuilder();stringBuilder.append("Hello").append("World");// 2.将字符串倒序,方法reverse()stringBuilder.reverse();System.out.println(stringBuilder);
StringBuilder stringBuilder = new StringBuilder();stringBuilder.append("Hello").append("World");// 3.尝试减少用于字符序列的存储(置空)。方法:stringBuilder.trimToSize();System.out.println("stringBuilder = " + stringBuilder);
trimToSize()
方法用于最小化用于字符的存储,去除未使用的空间,也可以用于将动态数组中的容量调整为数组中的元素个数