3.string具有不可变性。
4.stringA.equal(stringB);进行值比较。stringA==stringB;进行引用比较
5.string有不可变性,而stringbuffer有可变性。
将StringBuffer转换成String,StringBuffer类成员toString函数可将其转换成String类型。实例如下:
StringBuffer stringBuffer = new StringBuffer(“Hello World.”);
String c = stringBuffer.toString();// 调用toString函数将StringBuffer对象转换成String对象。
将String转换成StringBuffer
方式一:利用构造函数
String str=“Hello World.”;
StringBuffer buffer = new StringBuffer(str);
方式二:调用append函数
String str=“Hello World.”;
StringBuffer buffer2 = new StringBuffer();
buffer2.append(str);
1.
package run;
public class RunShape{
public static void main(String[] args) {
StringBuffer s=new StringBuffer("abc");
String a=s.toString(),b="abc";
System.out.println(a);
s.append("123");
System.out.println(s);
StringBuilder t=new StringBuilder(a);
t.append("456");
System.out.println(t);
System.out.println(a==b);
System.out.println(a.equals(b));
System.out.println(a.charAt(2));
System.out.println(t.reverse());
System.out.println(s.delete(1,2));
s.setCharAt(0,'q');
}
}
2.
String、StringBuffer、StringBuilder 比较:
String、StringBuffer、StringBuilder相同点:
a、内部实现基于字符数组,封装了对字符串处理的各种操作
b、可自动检测数组越界等运行时异常
String、StringBuffer、StringBuilder不同点
a、String内部实现基于常量字符数组,内容不可变; StringBuffer、StringBuilder基于普通字符数组,数组大小可根据字符串的实际长度自动扩容,内容可变
b、性能方面,对于字符串的处理,相对来说StringBuilder >StringBuffer>String.
c、StringBuffer线程安全;StringBuilder非线程安全
由于string的安全性,所以string常做参数传递,多线程安全。
3.for循环内使用“+”拼接,由于string是不可变性的,所以每一次都会创建新的对象,消耗大量内存。
4.编码:将Unicode字符集转换为本地字符集(GB2312或GBK)的过程。比如中文的unicode码为4e2d
6587,编码后为G2312为ffffffd6ffffffd0ffffffceffffffc4
解码:将本地字符集转换为unicode字符集的过程。过程与编码为反过程。