1 package cn.jiu.com;
2 /*
3 * Java StringBuffer和StringBuilder类
4 *
5 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类。
6
7 和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象。
8
9 StringBuilder类在Java 5中被提出,
10
11 它和StringBuffer之间的最大不同在于StringBuilder的方法不是线程安全的(线程安全就是多线程访问时,采用了加锁机制,
12
13 当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。
14
15 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据)。
16
17 由于StringBuilder相较于StringBuffer有速度优势,所以多数情况下建议使用StringBuilder类。然而在应用程序要求线程安全的情况下,则必须使用StringBuffer类。
18 *
19 *
20 *
21 *
22 *
23 */
24 public class Work02 {
25 public static void main(String[] args) {
26 fun();
27 fun01();
28 fun02();
29 fun03();
30 fun04();
31 fun05();
32 }
33 //append 将指定的字符串追加到此字符序列。 添加到缓冲区!
34 public static void fun(){
35 StringBuffer b=new StringBuffer("你好");
36 b.append(66);
37 System.out.println(b);
38 }
39 //replace 替换
40 public static void fun01(){
41 StringBuffer b=new StringBuffer();
42 b.append("你好啊!");
43 b.replace(0, 1, "傻逼");
44 // b.replace(2, 2, "66");
45 System.out.println(b);
46 }
47 //reverse 反转!
48 public static void fun02(){
49 StringBuffer b=new StringBuffer();
50 b.append(6699);
51 b.reverse();
52 System.out.println(b);
53 }
54 //toString
55 public static void fun03(){
56 StringBuffer b=new StringBuffer();
57 b.append("6699");
58 b.toString();
59 System.out.println(b);
60 }
61 //delete 移除此序列的子字符串中的字符 。 取值上!有头无尾!
62 public static void fun04(){
63 StringBuffer b=new StringBuffer();
64 b.append("6699");
65 b.delete(0, 3);
66 System.out.println(b);
67 }
68 //insert 将 int 参数的字符串表示形式插入此序列中
69 public static void fun05(){
70 StringBuffer b=new StringBuffer();
71 b.append("6699");
72 b.insert(0, 6);
73 System.out.println(b);
74 }
75
76 }