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

图书馆网站建设需求方案网站建设项目需求分析流程

图书馆网站建设需求方案,网站建设项目需求分析流程,老牌深圳公司大雨中解散,南京品牌网站建设String类 由多个字符组成的一串数据,值一旦创建不可改变 private final char value[]; 一旦值改变,就会创建新的对象 String s abc; //char[] c {a,b,c}sdef; // 并不是String的值改变,而是创建了一个新的对象sgh;saaa…String类 由多个字符组成的一串数据,值一旦创建不可改变 private final char value[]; 一旦值改变,就会创建新的对象 String s abc; //char[] c {a,b,c}sdef; // 并不是String的值改变,而是创建了一个新的对象sgh;saaa; ​System.out.println(s);//abcdefghaaa String创建对象方法 简化的创建方式 先去字符串常量池查找有没有abc,如果没有,就在字符串常量池中创建一个对象(abc),如果字符串常量池中已有abc,那么就直接指向已有的对象即可 String s abc;String s1 abc;System.out.println(ss1);//trueSystem.out.println(s.equals(s1));//true new构造方法 凡是new出来的,在内存空间中一定是独一无二的 String s3 new String(abc); String s4 new String(abc); System.out.println(s3s4);//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://www.hkea.cn/news/14334036/

相关文章:

  • 网站属于什么公司医疗网站建设好么
  • 用什么软件建网站最方便用代码怎么建设网站
  • 专业的网站建设价格低建设项目 环评申报网站
  • 怎么创建网站充值和提现账号云南省建设工程信息网官网
  • 网站建设总体规划包括哪些方面网站服务器基本要素
  • wordpress域名变了迁移网站优化seo推广服务
  • 教育类企业网站网站网址大全
  • 用服务器ip做网站域名盐山县做网站价格
  • 站长工具域名备案查询华为电子商务网站建设
  • 韩国网站加速器成都网站建设价格表
  • 一级a做爰片免费网站中国片订票网站开发公司
  • 广州天河区网站建设新浪博客怎么做网站
  • 网站建设服务费 印花税上海开公司
  • 网站建设saas崇明集团网站建设
  • 网站建设加盟招商大连建设招标网
  • 查询网站访问量网站做图标链接
  • 湘西网站建设吧在国际网站上做贸易怎么发货
  • ps个人网站的首页界面电子商务平台建设计划书
  • 商城网站建设信息百度爱采购怎样入驻
  • 个人网站模块wordpress售后退货插件
  • 金华哪里做网站网站建设昆山博敏
  • 弹簧机东莞网站建设福建建设建设厅官方网站
  • 樱桃企业网站管理系统越秀区建设水务局网站
  • 沙坪坝网站开发天津做网站优化公司
  • 温州网站建设服务中心购物网站有哪些模块
  • 创意 国外 网站泰安网站建设课程报告
  • 展示型网站建设流程图怎么样百度能搜到自己的网站
  • phpcms v9网站地图开源商城
  • 社旗微网站开发荆门网站制作公司
  • 站长之家alexa排名怎么看晋城网站建设公司