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 }