• 常用类一一字符串相关类一一StringBuilder,StringBuffer。


     1 package cn.bjsxt.stringbuilder;
     2 /**
     3  * String 不可变字符序列 
     4  * StringBuilder StringBuffer都是是可变字符序列
     5  * 区别在于StringBuilder(线程不安全,效率高)  StringBuffer是(线程安全,效率低)
     6  * @author Administrator
     7  *
     8  */
     9 public class Test01 {
    10 
    11     public static void main(String[] args) {
    12         StringBuilder sb = new StringBuilder();//字符数组长度默认16,因为父类构造方法设置的是16
    13         StringBuilder sb1 = new StringBuilder(32);//字符数组长度默认32
    14         StringBuilder sb2 = new StringBuilder("abcd");//字符长度="abcd"+字符数组长度默认16=20个字符
    15                                                       // 因为父类里面方法重写是16+字符串长度
    16         sb2.append("efg");//在字符创后边添加字符串
    17         sb2.append(true);//还可以添加布尔值 
    18         System.out.println(sb2);
    19         
    20         sb2.append(false).append(123).append(1.0);//因为 这个方法 return this 所以可以一直调用
    21         System.out.println(sb2);
    22         
    23         System.out.println("######################");
    24         
    25         StringBuilder gh = new StringBuilder("a");//长度"a"+16=17的字符 为什么下面循环20次却可以呢?建新数组替换老数组扩容
    26         //扩容大小(17+1)*2  老数组 没人引用 会被 垃圾回收
    27         //循环里面调用append() 循环添加字符  //看append()源码发现 
    28         for(int i=0;i<20;i++){
    29             gh.append(i);
    30         }
    31         System.out.println(gh);
    32     }
     1 package cn.bjsxt.stringbuilder;
     2 /**
     3  * StringBuilder 线程不安全 效率快
     4  * StringBuffer 唯一的区别 就是 线程安全 效率慢    
     5  * 因为加了 synchronized同步的 锁 每次都要等待
     6  * @author Administrator
     7  *
     8  */
     9 public class Test02 {
    10     public static void main(String[] args) {
    11         StringBuilder sb = new StringBuilder("abcdefghigklmnopqrstuvwxyz");
    12         //删除 3 4  不包含5
    13         sb.delete(3, 5);//[3,5)
    14         System.out.println(sb);//abcfghigklmnopqrstuvwxyz
    15         //翻转 
    16         sb.reverse();
    17         System.out.println(sb);//zyxwvutsrqponmlkgihgfcba
    18         
    19         
    20         StringBuffer sb2 = new StringBuffer();
    21     }
    22 }
  • 相关阅读:
    bzoj4044/luoguP4762 [Cerc2014]Virus synthesis(回文自动机+dp)
    bzoj4032/luoguP4112 [HEOI2015]最短不公共子串(后缀自动机+序列自动机上dp)
    bzoj3926/luoguP3346 [Zjoi2015]诸神眷顾的幻想乡(trie上构建广义后缀自动机)
    bzoj3144 [HNOI2013]切糕(最小割)
    知识点简单总结——原根和指标
    uoj86 mx的组合数 (lucas定理+数位dp+原根与指标+NTT)
    rest_framework 学习笔记(一)
    Django 数据库操作
    02-Kubenetes资源
    10-Helm
  • 原文地址:https://www.cnblogs.com/PoeticalJustice/p/7624667.html
Copyright © 2020-2023  润新知