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

山东房和城乡建设厅网站如何做好线上推广和引流

山东房和城乡建设厅网站,如何做好线上推广和引流,西安百度seo排名软件,网站性能优化方案目录 StringBuffer类 介绍 继承图 String VS StringBuffer StringBuffer的构造器 String和StringBuffer的转换 StringBuffer类常见方法 测试题 StringBuild类 基本介绍 继承图 String、StringBuffer 和StringBuilder的比较 通过字符串拼接循环测试可以看到各自的性…

目录

StringBuffer类

介绍

继承图 

String VS StringBuffer

 StringBuffer的构造器

String和StringBuffer的转换

StringBuffer类常见方法

测试题

StringBuild类

基本介绍

继承图

String、StringBuffer 和StringBuilder的比较

通过字符串拼接循环测试可以看到各自的性能差异

String、StringBuffer 和StringBuilder的选择


StringBuffer类

介绍

 java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删。

很多方法与String相同,但StringBuffer是可变长度的。 

StringBuffer是一个容器。

StringBuffer是一个final类, 不能被继承。

继承图 

真正字符串存放的位置是在父类的value属性的char数组里面 , 而且不是final, 既然不是final类型的, 是存放在堆中的, 不是在常量池的

String VS StringBuffer

1) String保存的是字符串常量,里面的值不能更改,每次String类的更新实际上就是更改地址,效率较低 //private final char value[];

2) StringBuffer保存的是字符串变量,里面的值可以更改,每次StringBuffer的更新实际上可以更新内容,不用每次更新地址(只有在char[]空间满了之后, 去扩展空间的时候再去更改),效率较高 //char[] value; //这个放在堆。 

 StringBuffer的构造器

1)断点查看不传任何参数时, 初始容量为16

追进去调的StringBuffer的无参构造器, 里面有一个super(16), 也就是调用父类构造器, 传值进去16

在追进去可以看到它的父类, new了一个char[], 传进去16, 并赋值给了value, 这个value就是 StringBuffer存放字符串的字符数组

 2)第三个构造器直接传进去char[]数组的大小

 追进去可以看到, 直接传的值给父类构造器, 最后赋值给value

3)最后一个构造器, 直接把字符串传进去

追进去, 直接把传进去的字符串长度加上一个16的空间给父类的char[] , 再把这个字符串给拼接到里面去

 

String和StringBuffer的转换

StringBuffer类常见方法

1)增 append

2)删 delete(start,end)

3)该 replace(start,end,string) //将 start----end 间的内容替换掉,不含 end

4)查 indexOf(String) //查找子串在字符串第1 次出现的索引,如果找不到返回-1

5)插 insert(index, string)

6)获取长度 length

测试题

1)

为什么输出为四, 因为子传进去为空的时候, 在父类进行了将空置换为'n','u','l','l'四个字符, 所以长度为4

2) 

 下面会抛出空指针异常, 因为传进去一个空, 调的构造器和不传不一样, 构造器调用了super(str.length()+16), 在.length的时候会抛出这个异常

小结, 如果通过

StringBuffer sb = new StringBuffer();

sb.append(str) 放进去的空字符串不会报空指针异常, 返回null四个字符

如果通过

StringBuffer sb = new StringBuffer(str);

会报空指针

3)

 

StringBuild类

基本介绍

1)一个可变的字符序列。此类提供一个与StringBuffer 兼容的API,但不保证同步(StringBuild不是线程安全的)。

该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer要快。

2)在 StringBuilder上的主要操作是append 和 insert 方法,可重载这些方法, 以接受任意类型的数据。

继承图

和StringBuffer同一个父类AbstractStringBuilder, 也就是说StringBuffer的方法StringBuild也有, 两个方法是一样的

String、StringBuffer 和StringBuilder的比较

1) StringBuilder 和 StringBuffer非常类似,均代表可变的字符序列,而且方法也一样

2) String:不可变字符序列,效率低,但是复用率高。

3) StringBuffer:可变字符序列、效率较高(增删)、线程安全

4) StringBuilder:可变字符序列、效率最高、线程不安全 

5) String使用注意说明:

string s="a"; //创建了一个字符串

s +="b"; //实际上原来的"a"字符串对象已经丢弃了,现在又产生了一个字符串s+"b"(也就是"ab")。

如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大 影响程序的性能=>结论: 如果我们对String 做大量修改,不要使用String

通过字符串拼接循环测试可以看到各自的性能差异

 

String、StringBuffer 和StringBuilder的选择

使用的原则

1.如果字符串存在大量的修改操作,一般使用 StringBuffer 或StringBuilder

2.如果字符串存在大量的修改操作,并在单线程的情况,使用 StringBuilder

3.如果字符串存在大量的修改操作,并在多线程的情况,使用 StringBuffer

4.如果我们字符串很少修改,被多个对象引用,使用String, 比如配置信息等 

http://www.yayakq.cn/news/759410/

相关文章:

  • 网站做专题页面百度关键字优化精灵
  • gudao网站建设国家鼓励做网站的行业
  • 外贸平台网站建设娄底网站建设企业
  • 网站商城维护怎么做上海松江做网站的公司
  • dedecms网站地图黄岛网站建设哪家专业
  • 北京专业建设网站公司湖北网络建设公司网站
  • 网站的开发建设要做什么虚拟主机安装wordpress
  • 网上做平面设计兼职不错的网站城乡建设部网站
  • 开一个网站需要什么烟台牟平住房建设局网站
  • 自己做的网站能放到阿里云上网站策划案例
  • 下载了网站模板怎么用网站加入百度地图
  • 网站网页区别是什么意思图片网站怎么做排名
  • 有没有手机网站推荐刷链接浏览量网站
  • 郑州做网站优化地址网站域名如何实名认证
  • 怎么做让自己的网站北京网页设计公司兴田德润团队
  • 网站怎么做h5支付大数据营销优势
  • 自己做彩票网站网站恶意做评论
  • 网站备案未注销 影响网站登录系统
  • 网站建设公司销售提成做电影网站服务器需求
  • 专门做面条菜谱的网站即将发布的新品手机
  • 新的网站怎么推广wordpress后台密码默认
  • 做自媒体那几个网站好点潍坊恒信建设集团网站
  • 手机浏览器 网站开发iis 7.0 网站配置
  • 起公司名称大全免费网站东钱湖镇建设局网站
  • 河北响应式网站企业代写软文费用全网天下实惠
  • 佛山网站建设 天博简单建站的网站
  • 网站页面前端基本设计描述网站建设的基本流程图
  • 风景区网站建设项目建设可行性建筑焊工证查询网站官方网
  • 受欢迎的佛山网站制作沈阳市城市建设网站
  • 网站 制作布局网站建设