1. 三个类的对比:
String:不可变的字符序列;底层使用char[ ] (jdk8及之前),底层使用byte[ ] (jdk9及之后)
StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[ ] (jdk8及之前),底层使用byte[ ] (jdk9及之后)
StringBuilder:可变的字符序列;线程不安全的,效率高;底层使用char[ ] (jdk8及之前),底层使用byte[ ] (jdk9及之后)
可变:每次修改内容都会创建新的对象。
2. StringBuilder的常用方法:
StringBuilder是专门用于修改字符串的一个类,内部维护一个可变的char数组,所做操作都是在这个数组之上进行的,修改速度、性能非常优秀,并且提供了修改字符串的常见方式:增、删、改、插
String str = "你好java";
StringBuilder builder = new StringBuilder(str);
builder.append(",我要学java");
System.out.println(builder);//你好java,我要学java
builder.replace(6,7,"。");
System.out.println(builder);//你好java。我要学java
builder.delete(0,2);
System.out.println(builder);//java。我要学java
builder.insert(0,"i love");
System.out.println(builder);//i lovejava。我要学java
3. StringBuffer的常用方法:
StringBuffer buffer = new StringBuffer("你好Java");
System.out.println(buffer);
buffer.append(",我要学JAVA");
System.out.println(buffer);//你好Java,我要学JAVA
buffer.replace(6,7,"。");
System.out.println(buffer);//你好Java。我要学JAVA
buffer.delete(0,2);
System.out.println(buffer);