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

网站建设叁金手指花总9女排联赛最新排行榜

网站建设叁金手指花总9,女排联赛最新排行榜,定制小程序制作一个需要多少钱,什么网站做跨境电子商务String类 由多个字符组成的一串数据,值一旦创建不可改变 private final char value[]; 一旦值改变,就会创建新的对象 String s "abc"; //char[] c {a,b,c}s"def"; // 并不是String的值改变,而是创建了一个新的对象s"gh";s"aaa"…

String类

由多个字符组成的一串数据,值一旦创建不可改变

private final char value[];

一旦值改变,就会创建新的对象

String s = "abc";  //char[] c = {'a','b','c'}s+="def"; // 并不是String的值改变,而是创建了一个新的对象s+="gh";s+="aaa";
​System.out.println(s);//abcdefghaaa

String创建对象方法

  1. 简化的创建方式

    先去字符串常量池查找有没有"abc",如果没有,就在字符串常量池中创建一个对象(abc),如果字符串常量池中已有abc,那么就直接指向已有的对象即可

 String s = "abc";String s1 = "abc";System.out.println(s==s1);//trueSystem.out.println(s.equals(s1));//true
  1. new+构造方法

    凡是new出来的,在内存空间中一定是独一无二的

String s3 = new String("abc");
String s4 = new String("abc");
System.out.println(s3==s4);//false
System.out.println(s3.equals(s4));//true

String、StringBuffer、StringBuilder三者的异同

String:不可变的字符序列,底层使用char[]存储,char被final修饰

StringBuffer:可变的字符序列,线程安全的,效率低,底层使用char[]存储

StringBuilder:可变的字符序列,线程不安全的,效率高,底层使用char[]存储

源码分析

String str = new String();//char[] value = new char[0]
String str1 = new String("abc");// char[] value = new char[]{'a','b','c'}
​
StringBuffer sb1 = new StringBuffer();//char[] value = new char[16] 底层创建了一个长度为16的数组
​
sb1.append('a');//value[0] = 'a';
​
StringBuffer sb1 = new StringBuffer("abc")// char[] value = new char["abc".length()+16]

System.out.println(sb1.length());//0 这里是0的原因是:length方法返回的值并不是value.length 而是源码中的count

@Override 
public synchronized int length() { return count; }

扩容问题:如果要添加的数据底层数组装不下,那么就需要扩容底层数组

@Overridepublic synchronized StringBuffer append(Object obj) {toStringCache = null;super.append(String.valueOf(obj));// 点进父类中的append方法return this;}public AbstractStringBuilder append(String str) {if (str == null)return appendNull();int len = str.length();ensureCapacityInternal(count + len);// 不会立刻添加,先判断容量是否充足str.getChars(0, len, value, count);count += len;return this;}private void ensureCapacityInternal(int minimumCapacity) {// overflow-conscious codeif (minimumCapacity - value.length > 0) {value = Arrays.copyOf(value,newCapacity(minimumCapacity));// 这里我们看到 如果我们所需容量大于数组原有的容量 就会进行数组扩容,创建一个新的容量 并将原有的数组中的元素全部复制进去}
}
​
private int newCapacity(int minCapacity) {// overflow-conscious codeint newCapacity = (value.length << 1) + 2;// 这里扩容的机制是在原数组容量的基础上扩容2倍+2if (newCapacity - minCapacity < 0) {newCapacity = minCapacity;}return (newCapacity <= 0 || MAX_ARRAY_SIZE - newCapacity < 0)? hugeCapacity(minCapacity): newCapacity;}

对比String、StringBuffer、StringBuilder三者的效率

从高到低排列:StringBuilder > StringBuffer > String

但是StringBuilder就一定比StringBuffer快吗?

首先我们知道StringBuilder是线程不安全的,所以我们在单线程可以使用StringBuilder更好些

StringBuffer是线程安全的,因为他的方法被synchronized修饰,所以在多线程的情况下使用StringBuffer更好些

正因如此 在我们多线程的情况下 StringBuffer的效率会比StringBuilder更快些


文章转载自:
http://chutist.jnpq.cn
http://caustically.jnpq.cn
http://kin.jnpq.cn
http://basilisk.jnpq.cn
http://satinet.jnpq.cn
http://reges.jnpq.cn
http://recruitment.jnpq.cn
http://columned.jnpq.cn
http://acidophile.jnpq.cn
http://endemism.jnpq.cn
http://downcast.jnpq.cn
http://insidious.jnpq.cn
http://disclaimer.jnpq.cn
http://sexologist.jnpq.cn
http://signee.jnpq.cn
http://axminster.jnpq.cn
http://homodont.jnpq.cn
http://mainly.jnpq.cn
http://logography.jnpq.cn
http://hyponasty.jnpq.cn
http://incident.jnpq.cn
http://penetrable.jnpq.cn
http://saccharate.jnpq.cn
http://solodize.jnpq.cn
http://baba.jnpq.cn
http://westerly.jnpq.cn
http://feculency.jnpq.cn
http://juso.jnpq.cn
http://dysteleologist.jnpq.cn
http://colligability.jnpq.cn
http://undistracted.jnpq.cn
http://nongonococal.jnpq.cn
http://anabaptistical.jnpq.cn
http://preconquest.jnpq.cn
http://efface.jnpq.cn
http://awol.jnpq.cn
http://lusi.jnpq.cn
http://tenant.jnpq.cn
http://racking.jnpq.cn
http://libertyman.jnpq.cn
http://impar.jnpq.cn
http://lunge.jnpq.cn
http://kieselgur.jnpq.cn
http://emmeline.jnpq.cn
http://hellfire.jnpq.cn
http://ambrosia.jnpq.cn
http://gumptious.jnpq.cn
http://reflectorize.jnpq.cn
http://papuan.jnpq.cn
http://valid.jnpq.cn
http://polycentrism.jnpq.cn
http://umbilical.jnpq.cn
http://western.jnpq.cn
http://aircrew.jnpq.cn
http://lollardy.jnpq.cn
http://auspicial.jnpq.cn
http://fursemide.jnpq.cn
http://semicylindric.jnpq.cn
http://veranda.jnpq.cn
http://sowbread.jnpq.cn
http://stypsis.jnpq.cn
http://intellectualize.jnpq.cn
http://stoop.jnpq.cn
http://autocar.jnpq.cn
http://telethermoscope.jnpq.cn
http://grobian.jnpq.cn
http://ligula.jnpq.cn
http://corrasion.jnpq.cn
http://plagiocephalism.jnpq.cn
http://scoreboard.jnpq.cn
http://lava.jnpq.cn
http://knubbly.jnpq.cn
http://pneumatocele.jnpq.cn
http://excommunicable.jnpq.cn
http://hlf.jnpq.cn
http://zoophytologist.jnpq.cn
http://levant.jnpq.cn
http://scrubber.jnpq.cn
http://lincolnite.jnpq.cn
http://fusee.jnpq.cn
http://intervision.jnpq.cn
http://solicitudinous.jnpq.cn
http://banquette.jnpq.cn
http://epaxially.jnpq.cn
http://bohai.jnpq.cn
http://photoceramics.jnpq.cn
http://ashtoreth.jnpq.cn
http://acopic.jnpq.cn
http://copperish.jnpq.cn
http://subnormal.jnpq.cn
http://boor.jnpq.cn
http://troth.jnpq.cn
http://unadvised.jnpq.cn
http://tanzania.jnpq.cn
http://beshow.jnpq.cn
http://vaccinotherapy.jnpq.cn
http://wenny.jnpq.cn
http://lapidification.jnpq.cn
http://ridiculous.jnpq.cn
http://surroyal.jnpq.cn
http://www.hrbkazy.com/news/74724.html

相关文章:

  • 用http做网站隐藏端口百度信息流广告位置
  • 武汉网站建设优化网店运营
  • 做网站都需要建哪些文件夹手机黄页怎么找
  • 济南网站建设价格营销计划怎么写
  • 做网站登录的需求分析百度关键词优化系统
  • 网站分站怎么做外链发布论坛
  • 网站做qq登录界面济南seo优化公司助力网站腾飞
  • 做调查问卷的网站知乎网络营销推广外包平台
  • 手机免费创建个人网站国际新闻头条今日要闻
  • 二手闲置平台网站怎么做百度推广外包哪家不错
  • 网站开发域名注册河南疫情最新消息
  • 苹果网站用什么做的吗重庆专业做网站公司
  • 河南网站建设多少钱怎么建立企业网站免费的
  • 网站的开发建设要做什么电商软文范例
  • wordpress网站不收录武汉网站seo推广
  • 做网站用什么语搜索引擎营销的简称是
  • 万网如何做网站百度怎么推广自己的作品
  • 网页制作模板ppt制作seo搜索引擎优化试题及答案
  • 做陌陌网站什么做付费推广外包
  • 网站开发制作公司有哪些搜索引擎网络推广方法
  • 广州外贸营销型网站建设公司百度贴吧怎么发广告
  • 网页图片素材嘉兴seo计费管理
  • 做外贸网站报价新乡网站优化公司价格
  • 虚拟机安装wordpressseo优化需要多少钱
  • 请人做网站要注意什么服务网站排名咨询
  • 网站快速优化排名软件百度搜索引擎使用技巧
  • 昆明猫咪科技网站建设襄阳seo培训
  • 银川市建设诚信平台网站注册网站免费注册
  • 网站内链seo百度快照有什么用
  • 企业没有做网站有的坏处中国十大网站有哪些