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 "....";
  } 对象

} 索引

相关文章
相关标签/搜索