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

顺义推广建站深圳做网站网络公司怎么样

顺义推广建站,深圳做网站网络公司怎么样,南宁百度快速排名优化,PHP网站开发如何建立vipString字符串 不可变的字符序列在 jdk1.8#xff0c;我们底层用 char [ ] 存储在 jdk 17#xff0c;我们底层用 byte [ ] 存储 StringBuffer字符串缓冲区类 可变的字符序列#xff0c;线程安全的#xff08;synchronized#xff09;#xff0c;效率低在 jdk1.8#xf… String字符串 不可变的字符序列在 jdk1.8我们底层用 char [ ] 存储在 jdk 17我们底层用 byte  [ ] 存储  StringBuffer字符串缓冲区类 可变的字符序列线程安全的synchronized效率低在 jdk1.8我们底层用 char [ ] 存储在 jdk 17我们底层用 byte  [ ] 存储  StringBuilder字符串生成器类 可变的字符序列jdk5.0新增的线程不安全的效率高在 jdk1.8我们底层用 char [ ] 存储在 jdk 17我们底层用 byte  [ ] 存储  1、那么在开发当中我们应该到底怎么选择呢 首先看是不是一个多线程问题。不是多线程问题就用StringBuilder因为只有多个线程操作共享数据的时候我们才会考虑用StringBuffer否则不是多线程或者不存在多线程的安全问题我们都建议用StringBuilder。 2、jdk8源码分析String String str new String();                    //char[ ] value new char[0];String str1 new String(abc)         //char[ ]  value new char[ ]{  a,  b,  c  }; 3、jdk8源码分析StringBuffer StringBuffer sb1 new StringBuffer();        //char[ ] value new char[16];   底层创建了一个长度是16的数组。sb1.append(a);    //value[0] a;sb1.append(b)     //value[1] b; package stringdemo;public class StringBufferTest {public static void main(String[] args) {StringBuffer sb new StringBuffer();System.out.println(sb.capacity());//16} } D:\Java\jdk-17\bin\java.exe -javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar34469:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin -Dfile.encodingUTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringBufferTest 16Process finished with exit code 0StringBuffer   sb2 new StringBuffer“abc”//char[ ] value new char[abc.length()16] package stringdemo;public class StringBufferTest {public static void main(String[] args) {StringBuffer sb1 new StringBuffer(abc);System.out.println(sb1.capacity());//31619} } D:\Java\jdk-17\bin\java.exe -javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar35502:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin -Dfile.encodingUTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringBufferTest 19Process finished with exit code 03.1、扩容问题 如果要添加的数据底层数组盛不下了那就需要扩容底层的数组。默认情况下扩容为原来容量的2倍2同时将原有数组中的元素赋值到新的数组中。new StringBuilder();     创建的时候是不会扩容的容量是字符串参数的长度 加上16。 package stringdemo;public class StringBufferTest {public static void main(String[] args) {//new StringBuffer();创建的时候是不会扩容的StringBuffer sb1 new StringBuffer(66666666666666666666666666666666666666666666666666666666);System.out.println(sb1.length());//56System.out.println(sb1.capacity());//561672} } D:\Java\jdk-17\bin\java.exe -javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar37260:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin -Dfile.encodingUTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringBufferTest 56 72Process finished with exit code 0sb1.append();的时候追加的时候才会发生扩容。超出字符串参数的长度16的时候才会发生扩容。 public class StringBufferTest {public static void main(String[] args) {StringBuffer sb1 new StringBuffer(44444444);//new创建的时候不会发生扩容System.out.println(sb1.length());//8System.out.println(sb1.capacity());//81624System.out.println();sb1.append(44444444);System.out.println(sb1.length());//16System.out.println(sb1.capacity());//24System.out.println();sb1.append(44444444);System.out.println(sb1.length());//24System.out.println(sb1.capacity());//24 这个时候StringBuffer的容量已经满再append就会扩容System.out.println();sb1.append(4);System.out.println(sb1.length());//25System.out.println(sb1.capacity());//24*2250 扩容为原来容量的2倍2} } D:\Java\jdk-17\bin\java.exe -javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar37603:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin -Dfile.encodingUTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\jdk8 StringBufferTest 8 2416 2424 2425 50Process finished with exit code 03.2、指导意见 开发中建议大家使用StringBufferint capacity为了避免扩容一开始建议使用带参数的构造器效率会高一些。 4、StringBuffer类常用方法 StringBuffer appendxxx 提供了很多的append方法用于进行字符串拼接 StringBuffer  deleteint startint end 删除指定位置的内容 StringBuffer  replaceint startint endString str 把[start,end]位置替换为str StringBuffer insertint offsetxxx 在指定位置插入xxx StringBuffer  reverse 把当前字符序列逆转 当append和insert时如果原来value数组长度不够可扩容。如上这些方法支持方法链操作 总结 增 append(xxx) 删 delete(int start,int end) 改 setCharAt(int n,char ch)        /     replace(int start,int end,String str) 查 charAt(int n) 插 insert(int offset,xxx) 长度 length(); *遍历 for() charAt()     /    toString() 5、对比String、StringBuffer、StringBuilder三者的效率 从高到低排列StringBuilder StringBuffer String public class Efficiency {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));} } D:\Java\jdk-17\bin\java.exe -javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar18779:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin -Dfile.encodingUTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\jdk8 Efficiency StringBuffer的执行时间5 StringBuilder的执行时间3 String的执行时间210Process finished with exit code 0
http://www.dnsts.com.cn/news/89259.html

相关文章:

  • 厦门网站建站网站建设的关键问题
  • 网站开发一个人可以完成吗互联网服务
  • 保定专业做网站公司建站超市代理
  • 如何进入google网站宜昌网站建设兼职
  • 手机网站关键词排分享类网站源码
  • 闵行做网站费用美橙互联同类型网站
  • 旅游网站设计方案河北省建设安全监督站的网站
  • 苏州专业网站建设的公司本地网站建设流程
  • 网站开发的工资wordpress系统升级的风险
  • 云盘可以做网站吗哈尔滨建设局网站首页
  • 仙居微信网站开发网站建设怎么分好坏
  • 环保部网站建设项目验收方案建设网站卡盟
  • 3g下订单的网站怎么做河南郑州广城区
  • 用dw设计网站模板下载地址百度做的网站 如果不做推广了 网站还保留吗
  • 建设网站后申请什么类型专利页游源码论坛
  • 易居做网站cdn加速国外服务器
  • 网站收录了被人为删了怎么办vue做前台网站
  • 典型网站建设实例精讲2017网站备案
  • 江苏网站备案流程图婚纱摄影网站应该如何做优化
  • 文化公司网站建设取个网络公司名字
  • 免费优化网站建设自己做的网站可以用于百度推广吗
  • 湖南网站制作外包容桂网站智能推广新闻
  • 莆田高端网站建设全网优化哪家好
  • 北京企业网站搭建用网站做的简历模板
  • 建设部精神文明建设网站网站开发源代码 百度文库
  • 广州网站营销推广芭嘞seo
  • dedecms网站根目录广告设计公司任务书
  • 怎样进入网站的后台easyphp安装wordpress
  • 手机企业网站开发wordpress instagram
  • 评析网站建设报价单湘潭城乡建设发展集团网站