当前位置: 首页 > news >正文

深圳做自适应网站设计谷歌官方网站首页

深圳做自适应网站设计,谷歌官方网站首页,外贸网站建设560,网站目录爬行StringBuffer、StringBuilder 文章目录 StringBuffer、StringBuilderStringBuffer和StringBuilder的理解可变性分析对于String对于StringBuilder 常用方法执行效率对比 StringBuffer和StringBuilder的理解 String 不可变的字符序列 StringBuffer 可变的字符序列 JDK1.0声明&…

StringBuffer、StringBuilder

文章目录

  • StringBuffer、StringBuilder
    • StringBuffer和StringBuilder的理解
    • 可变性分析
      • 对于String
      • 对于StringBuilder
    • 常用方法
    • 执行效率对比

StringBuffer和StringBuilder的理解

String 不可变的字符序列

StringBuffer 可变的字符序列 JDK1.0声明,线程安全 , 效率低

StringBuilder 可变的字符序列 JDK5.0声明 ,线程不安全 ,效率高

可变性分析

对于String

String s1 = new String() ; //char[] value = new char[0];
String s2 = new STring("abc");	//char[] value = new char[3]{'a','b,'c'};

对于StringBuilder

char []value;	//存储字符序列
int count;	//实际存储的字符个数
StringBuilder sBuffer1 = new StringBuilder();	//char[] value = new char[16];
StringBuilder sBuffer2 = new StringBuilder("abc");	//char[] value = new char[16 + "abc".length];
sBuffer1.append("ab");	//value[0] = 'a'; value[1] = 'c';
sBuffer1.append("b");	//value[2] = 'b';
//最多修改16个
//一旦count超过value.length时,就需要扩容
//默认扩容为原有容量的2倍 + 2 。 并将原有的value数组中的元素复制到新的数组中
  • 如果开发中,需要频繁的针对于字符串进行 增删改 等操作 ,建议使用StringBuffer StringBuilder替换String

  • 若不涉及线程安全问题,建议使用StringBuffer 替换 StringBuilder

  • 若大体确定需要操作的字符的个数,建议使用int capacity的构造器,避免底层多次扩容操作,效率降低

常用方法

StringBuilder、StringBuffer的API是完全一致的,并且很多方法与String相同。

//常用API1StringBuffer append(xx):提供了很多的append()方法,用于进行字符串追加的方式拼接
(2StringBuffer delete(int start, int end):删除[start,end)之间字符
(3StringBuffer deleteCharAt(int index):删除[index]位置字符
(4StringBuffer replace(int start, int end, String str):替换[start,end)范围的字符序列为str
(5void setCharAt(int index, char c):替换[index]位置字符
(6char charAt(int index):查找指定index位置上的字符
(7StringBuffer insert(int index, xx):在[index]位置插入xx
(8int length():返回存储的字符数据的长度
(9StringBuffer reverse():反转
//其他API1int indexOf(String str):在当前字符序列中查询str的第一次出现下标
(2int indexOf(String str, int fromIndex):在当前字符序列[fromIndex,最后]中查询str的第一次出现下标
(3int lastIndexOf(String str):在当前字符序列中查询str的最后一次出现下标
(4int lastIndexOf(String str, int fromIndex):在当前字符序列[fromIndex,最后]中查询str的最后一次出现下标
(5String substring(int start):截取当前字符序列[start,最后]6String substring(int start, int end):截取当前字符序列[start,end)7String toString():返回此序列中数据的字符串表示形式
(8void setLength(int newLength) :设置当前字符序列长度为newLength
  • StringBuffer append(xx)

    public class StringBufferTest{public static void main(String []args){StringBuilder sBuilder = new StringBuilder();sBuilder.append("abc").append("def");	//方法链调用System.out.println(sBuilder);	//abcdef}
    }
    
  • StringBuffer delete(int start, int end)

     public class StringBufferTest{public static void main(String []args){StringBuilder stringBuilder = new StringBuilder("helloworld");System.out.println(stringBuilder.delete(5, stringBuilder.length()));	//hello}}
    
  • StringBuffer deleteCharAt(int index)

    public calss StringBufferTest{public static void main(String []args){StringBuilder stringBuilder = new StringBuilder("Java");System.out.println(stringBuilder.deleteCharAt(0));  //ava}
    }
    
  • StringBuffer replace(int start, int end, String str)

    public class StringBufferTest{public static void main(String []args){StringBuilder stringBuilder = new StringBuilder("Java");System.out.println(stringBuilder.replace(0, stringBuilder.length(), "helloworld")); //helloworldSystem.out.println(stringBuilder);  //helloworld}
    }
    

执行效率对比

效率排序

StringBuilder > StringBuffer > String

public class RuntimeTest{public static void main(String []args){long startTime = 0L;long endTime = 0L;String text = "";StringBuffer buffer = new StringBuffer("");StringBuilder builder = new StringBuilder("");startTime = System.currentTimeMillis();for (int i = 0; i < 20000; i++) {buffer.append(String.valueOf(i));}endTime = System.currentTimeMillis();System.out.println("StringBuffer运行时间" + (endTime - startTime));startTime = System.currentTimeMillis();for (int i = 0; i < 20000; i++) {builder.append(String.valueOf(i));}endTime = System.currentTimeMillis();System.out.println("StringBuilder运行时间" + (endTime - startTime));startTime = System.currentTimeMillis();for (int i = 0; i < 20000; i++) {text = text + i;}endTime = System.currentTimeMillis();System.out.println("String运行时间" + (endTime - startTime));}
}
//
//StringBuffer运行时间2
//StringBuilder运行时间1
//String运行时间274
http://www.tj-hxxt.cn/news/27161.html

相关文章:

  • 企业建网站有这个必要吗mac蜜桃923色号
  • 学做网站需要懂什么流量点击推广平台
  • 广饶网站设计百度推广电话销售好做吗
  • 铝木门窗网站建设怎么自己注册网站平台了
  • 网站维护工程师月薪多少西安百度关键词排名服务
  • 上海网站制作建设怎么样seo排名优化seo
  • 北京高端网页制作自动优化句子的软件
  • wordpress提交表单seo评测论坛
  • 凡科做网站怎么样关键词代发包收录
  • 虞城做网站网站服务器搭建与管理
  • 客户型网站域名注册多少钱
  • wordpress独立搜索优化营商环境个人心得体会
  • 什么是网站内容建设今日的头条新闻
  • 成都响应式网站建设高端网站建设哪家便宜
  • 网站建设合同免费推广广告链接
  • 企业建站系统cms网络营销模式案例
  • 定制app开发的流程seo网站推广助理招聘
  • 视频网站做app还是h5网站推广专家
  • 网站开发常用模板获客软件排名前十名
  • 网站系统cms网站设计专业的公司
  • b站推广网站动漫贵港seo关键词整站优化
  • wordpress导出软件关键词排名优化提升培训
  • 桥东企业做网站南京网页搜索排名提升
  • 南昌做网站哪家便宜百度竞价托管公司
  • 做网站项目收获互联网推广有哪些方式
  • 做火情监控网站需要用什么系统网站seo诊断报告怎么写
  • 来年做哪些网站能致富培训公司
  • 腾和企业网站 优帮云如何给企业做网络推广
  • 合川网站建设公司可以免费网络推广网站
  • 网络公司网站程序手机网页制作