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

网站对话窗口怎么做论坛推广案例

网站对话窗口怎么做,论坛推广案例,网站建设人员配备,四川网站建设1.区别 (1). String : 不可变字符序列. (2). StringBuffer : 可变字符序列.线程安全,但效率低. (3). StringBuilder : 可变字符序列.线程不安全,但效率高. 既然StringBuffer与StringBuilder都是可变字符序列,但二者咋区分开呢&#xff1f…

1.区别

(1). String : 不可变字符序列.

(2). StringBuffer : 可变字符序列.线程安全,但效率低.

(3). StringBuilder : 可变字符序列.线程不安全,但效率高.

既然StringBuffer与StringBuilder都是可变字符序列,但二者咋区分开呢?

查看源码 : 发现StringBuffer类中的方法都用了synchronized修饰,即其中的方法都是同步方法.故线程更安全.

0a18437350104fe2927be2b54483cef4.png

查看源码 : StringBuilder类中的方法并没有用到synchronized修饰.线程不安全.但节省了握锁的时间,所以效率更高.

e0cbd530c72342ad821673291c968cff.png

2.StringBuffer/StringBuilder可变性分析

(1). 针对于StringBuilder来说,有两个属性需要注意.其实你在该类的源码中是找不到这两个属性的,因为他们其实声明在其父类AbstractStringBuilder中.

(jdk8.0版本)char[] value : 存储字符序列.注意,String类中该数组是用final修饰的,而此处没有,侧面也可以体现出可变性序列.

int count : 实际存储字符的个数.

StringBuilder sBuilder1 =new StringBuilder();//char[] value = new char[16];sBuilder1.append("hex");//value[0] = 'h';
//value[1] = 'e';
//value[2] = 'x';

(2).因为我用的是jdk17版本,所以源码value数组我byte[]类型.

StringBuilder sBuilder1 =new StringBuilder()底层

//构造器
public StringBuffer() {super(16);}
//底层new了一个16个字节的字节数组
value = new byte[capacity];

StringBuilder sBuilder2 =new StringBuilder("abc")底层

public StringBuilder(String str) {super(str);}//截取了一部分源码
int length = str.length();int capacity = (length < Integer.MAX_VALUE - 16)? length + 16 : Integer.MAX_VALUE;
coder = initCoder;value = (initCoder == LATIN1)? new byte[capacity] : StringUTF16.newBytesFor(capacity);

很清晰看到 : byte[] value =new byte[16+str.length()];

append : 追加

如果append的字符串的长度<16,如下.

如果追加的字符串长度>16,先判断有没有length是否大于16*2+2;如果小于34,则分配char[] value =new char[34];如果大于,则分配char[] value =new char[str.length];

StringBuilder sBuilder1 =new StringBuilder()//char[] value = new char[16];sBuilder1.append("hex");//value[0] = 'h';
//value[1] = 'e';
//value[2] = 'x';

3.说明 

  • 如果开发中需要对字符串频繁的进行增删插的操作,就考虑使用StringBuffer/StringBuilder.
  • 如果开发中不涉及到多线程问题,则考虑使用StringBuilder,因为它效率更高.
  • 如果开发中大体确定字符串的长度,则可以考虑使用StringBuilder带参构造器,避免底层多次扩容操作.

4.StringBuilder/StringBuffer常见方法.

//字符串追加
public StringBuilder append(StringBuffer sb)//字符串删除[start, end)
public StringBuilder delete(int start, int end)//删除字符串指定索引字符
public StringBuilder deleteCharAt(int index)//字符串替换
public StringBuilder replace(int start, int end, String str)//字符串插入
public StringBuilder insert(int offset, String str)//字符串反转
public StringBuilder reverse()

http://www.ds6.com.cn/news/28881.html

相关文章:

  • 济南seo官网优化seo点击软件哪个好用
  • 开个网站做代理赚钱吗企业营销网站制作
  • 外贸做哪个网站好产品推广软文200字
  • 典型网站建设品牌推广与传播怎么写
  • 深圳专业做网站排名多少钱南宁百度推广代理商
  • 浏览器被2345网址导航搜索关键词排名优化服务
  • 网站建设如何提高浏览量营销咨询公司经营范围
  • wordpress添加电台seo的概念
  • 垂直行业门户网站aso优化重要吗
  • 学习做网站多久搭建网站的步骤
  • 做赌博网站判刑b2b是什么意思
  • 百度收录不了网站中国十大it培训机构排名
  • seo网站关键词百度网盘pc端网页版
  • 网站跳转怎么做360冬镜seo
  • 小软件公司一年能挣多少钱seo是指搜索引擎营销
  • 做移动端活动页面参考网站百度客服电话24小时客服电话
  • 网站信任的体验如何做痘痘怎么去除效果好
  • 做网站借用网络图片不违法吧网站制作建设公司
  • wordpress dux主题首页排序百度如何优化
  • 惠州网站建设找惠州邦网站seo推广营销
  • 手机怎么做弹幕小视频网站百度手机网页版
  • 网页制作培训班厦门做网站seo推广公司
  • 企业管理网站开发论文seo运营培训
  • 如何做自已网站济南网站建设公司选济南网络
  • 做了个网站 怎么做seo中国足彩网竞彩推荐
  • 网站建设金硕网络seo的优点
  • 做私服网站需要些什么app推广策划方案
  • 玻璃钢格栅无锡网站建设武汉大学人民医院洪山院区
  • 怎样登录沈阳科技网站搜索引擎优化seo优惠
  • 网站由谁备案谷歌搜索引擎入口2021