StringBuilder 小結

        前言:發覺本身的尺度愈來愈低,下限屢屢被刷新。StringBuilder類中大量的方法,總給人一種看一眼API就能學會使用的感受,這種狀況下,實在懶得一字一句地敲Demo,直接把別人的Demo拿來主義。哈哈~ 安全

    不過說回來,仍是要作一下分類。 app

    StringBuilder的方法大致可分爲增刪改差。(append或insert,delete,replace,indexOf)其中,append和insert似有很多功能重疊之處,底層實現之間卻又沒有相互調用,真是叫人費解。 ide

    StringBuilder和StringBuffer的方法使用如出一轍,區別只在StringBuilder線程不安全而StringBuffer線程安全,僅此而已。 ui

 

 


public class StringBuilderDemo { 線程

 /**
  * 字符串String爲不可改變的字符序列
  * 一、常量池 (共享)
  * 二、字符串不可改變, +  拼接,不是追加
  *  +產生大量的垃圾對象
  *  StringBuilder/StringBuffer -->append(boolean b)
  *  String  StringBuilder StringBuffer 三者區別
  *  一、String 不可改變
  *     StringBuilder、StringBuffer 可改變
  *  二、StringBuilder:線程不安全
  *     String:線程安全
  *     StringBuffer:線程安全
  *  三、String 重寫了equals  比較內容相同
  *    StringBuilder、StringBuffer 沒有重寫,比較地址
  *       
  *  
  *    /**
  * StringBuilder /StringBuffer方法
  * 一、append(boolean b)  追加
  * 二、charAt(int index)  指定位置|索引的字符
  * 三、delete(int start, int end) 刪除[s,e)的子字符串
      deleteCharAt(int index)  刪除指定位置的字符
    四、indexOf(String str)  第一次出現的 位置
       indexOf(String str, int fromIndex) 
       lastIndexOf(String str)  最後一次出現的位置
    lastIndexOf(String str, int fromIndex)  
    五、insert(int offset, Object obj)  插入字符串
  * 六、length()
  * 七、replace(int start, int end, String str)  替換字符串
  * 八、//reverse()  反轉
  * 九、setCharAt(int index, char ch)  替換單個字符
  * 十、substring(int start)  獲取子串
  *     substring(int start, int end)
  * 十一、toString() 對象轉成字符串
  *
  *  
  *  
  *
  */
  public static void main(String[] args) {
   StringBuilder sb1 =new StringBuilder("abc");
   StringBuilder sb2 =new StringBuilder("abc");
   //沒有重寫equals
   System.out.println(sb1.equals(sb2));
  }
  public static void test1(){
   //StringBuilder(String str)
   StringBuilder sb =new StringBuilder("abc");
   //獲取Runtime
   Runtime rn =Runtime.getRuntime(); //單例
   System.out.println("空閒內存-->"+rn.freeMemory());
   System.out.println("最大內存-->"+rn.maxMemory() );
   System.out.println("整體內存-->"+rn.totalMemory() );
   for(int i=0;i<10000;i++){
    
    sb.append(i);
   }
   System.out.println("=========================");
   System.out.println("空閒內存-->"+rn.freeMemory());
   System.out.println("最大內存-->"+rn.maxMemory() );
   System.out.println("整體內存-->"+rn.totalMemory() );
  
   System.out.println(sb);
  }
  
  public static void stringDemo(){
   StringBuilderDemo demo =new StringBuilderDemo();
   System.out.println(demo.toString());
   
   //toString
   String msg ="abc";
   System.out.println(msg.toString());
   System.out.println(msg);
   
   
   //獲取Runtime
   Runtime rn =Runtime.getRuntime(); //單例
   System.out.println("空閒內存-->"+rn.freeMemory());
   System.out.println("最大內存-->"+rn.maxMemory() );
   System.out.println("整體內存-->"+rn.totalMemory() );
   for(int i=0;i<10000;i++){
    
    msg +=i;
   }
   System.out.println("=========================");
   System.out.println("空閒內存-->"+rn.freeMemory());
   System.out.println("最大內存-->"+rn.maxMemory() );
   System.out.println("整體內存-->"+rn.totalMemory() );
  }
  @Override
  public String toString() {
   return "....";
  } 對象

} 索引

相關文章
相關標籤/搜索