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

广州市网站建设哪里有徐州哪里做网站好

广州市网站建设哪里有,徐州哪里做网站好,关于网站建设的文案,企业主题wordpress 含演示数据一、常见的数据结构 1、数组结构 数组结构#xff1a; 存储区间连续、内存占用严重、空间复杂度大 优点#xff1a;随机读取和修改效率高#xff0c;原因是数组是连续的#xff08;随机访问性强#xff0c;查找速度快#xff09;缺点#xff1a;插入和删除数据效率低 存储区间连续、内存占用严重、空间复杂度大 优点随机读取和修改效率高原因是数组是连续的随机访问性强查找速度快缺点插入和删除数据效率低因插入数据这个位置后面的数据在内存中都要往后移动且大小固定不易动态扩展。 2、链表结构 存储区间离散、占用内存宽松、空间复杂度小 优点插入删除速度快内存利用率高没有固定大小扩展灵活缺点不能随机查找每次都是从第一个开始遍历查询效率低 3、哈希表结构 特点结合数组结构和链表结构的优点从而实现了查询和修改效率高插入和删除效率也高的一种数据结构 二、List集合 底层实现原理 1、ArrayList 本质是数组具有自动扩容默认长度10当插入数据大于了当前长度重新创建新数组长度为旧数组长度的1.5倍并将所有数据复制到新数组中释放旧数组。 优点按顺序添加查询快通过下标找出某一个值缺点删除和插入比较耗时删除一个整体需要向前移动一位添加一个整体需要向后移动一位 2、LinkedList 和List集合用法一样线程不安全 优点插入和删除快LinkedList集合实现双向链表接口实现从头元素到尾元素的链表和从尾到头元素的链表目标为了增加元素的检索效率 适合做随机的增加或者删除缺点查询慢 3、Voctor 线程安全 Vector中所有的方法都是线程同步的都带有synchronized关键字所以他的并行性能慢不建议使用 三、map底层实现原理 HashMap实现原理底层是使用哈希表的方式实现 1、map.put(k,v) 1将k,v封装到Node对象当中节点。 2然后它的底层会调用K的hashCode()方法得出hash值。 3通过哈希表函数/哈希算法将hash值转换成数组的下标下标位置上如果没有任何元素就把Node添加到这个位置上。如果说下标对应的位置上有链表。此时就会拿着k和链表上每个节点的k进行equal。如果所有的equals方法返回都是false那么这个新的节点将被添加到链表的末尾。如其中有一个equals返回了true那么这个节点的value将会被覆盖。 2、map.get(k) 1调用k的hashCode()方法得出哈希值并通过哈希算法转换成数组的下标。 2通过上一步哈希算法转换成数组的下标之后在通过数组下标快速定位到某个位置上。如果这个位置上什么都没有则返回null。如果这个位置上有单向链表那么它就会拿着K和单向链表上的每一个节点的K进行equals如果所有equals方法都返回false则get方法返回null。如果其中一个节点的K和参数K进行equals返回true那么此时该节点的value就是我们要找的value了get方法最终返回这个要找的value。 2、HashSet 基于HashMap实现的默认构造函数是构建一个初始容量为16负载因子为0.75 的HashMap。封装了一个 HashMap 对象来存储所有的集合元素所有放入 HashSet 中的集合元素实际上由 HashMap 的 key 来保存而 HashMap 的 value 则存储了一个 PRESENT它是一个静态的 Object 对象。 HashSet源码构造器中实例化一个HashMap /*** Constructs a new set containing the elements in the specified* collection. The ttHashMap/tt is created with default load factor* (0.75) and an initial capacity sufficient to contain the elements in* the specified collection.** param c the collection whose elements are to be placed into this set* throws NullPointerException if the specified collection is null*/public HashSet(Collection? extends E c) {map new HashMap(Math.max((int) (c.size()/.75f) 1, 16));addAll(c);}四、字符串 1、String 特性 String是被final修饰的类不能被继承String实现了Serializable和Comparable接口表示String支持序列化和可以比较大小String底层是通过char类型的数据实现的并且被final修饰所以字符串的值创建之后就不可以被修改具有不可变性。 不可变性 举例s1和s2的值相同同时指向同一个内存地址address1如果将s1从新赋值那么并不是在原来的内存地址address1修改内容的而是重新分配一个新的内存地址address2。 String s1测试; String s2测试; s1hello;String实例化 1、方式一 :字符串存储在方法区的字符串常量池中 String text sss2、方式二:字符串对象存储在堆中但是字符串的值仍然存储在方法区的常量池中 String text1 new String(sss)2、StringBuffer 和StringBuilder深层理解 StringBuffer、StringBuilder和String类似底层也是用一个数组来存储字符串的值并且数组的默认长度为16即一个空的StringBuffer对象数组长度为16。实例化一个StringBuffer对象即创建了一个大小为16个字符的字符串缓冲区。但是​当我们调用有参构造函数创建一个StringBuffer对象时数组长度就不再是16了而是根据当前对象的值来决定数组的长度数组的长度为“当前对象的值的长16”。所以一个 StringBuffer 创建完成之后有16个字符的空间可以对其值进行修改。如果修改的值范围超出了16个字符会先检查StringBuffer对象的原char数组的容量能不能装下新的字符串如果装不下则会对char 数组进行扩容。那StringBuffer是怎样进行扩容的呢 扩容的逻辑就是创建一个新的 char数组将现有容量扩大一倍再加上2如果还是不够大则直接等于需要的容量大小。扩容完成之后将原数组的内容复制到新数组最后将指针指向新的 char 数组。String、StringBuffer和StringBuilder的异同 1相同点底层都是通过char数组实现的 2不同点String对象一旦创建其值是不能修改的如果要修改会重新开辟内存空间来存储修改之后的对象而StringBuffer和StringBuilder对象的值是可以被修改的 StringBuffer几乎所有的方法都使用synchronized实现了同步线程比较安全在多线程系统中可以保证数据同步但是效率比较低而StringBuilder 没有实现同步线程不安全在多线程系统中不能使用 StringBuilder但是效率比较高。 如果我们在实际开发过程中需要对字符串进行频繁的修改不要使用String否则会造成内存空间的浪费当需要考虑线程安全的场景下使用 StringBuffer如果不需要考虑线程安全追求效率的场景下可以使用 StringBuilder。 3、SpannableString、SpannableStringBuilder与String 首先SpannableString、SpannableStringBuilder基本上与String差不多也是用来存储字符串但它们俩的特殊就在于有一个SetSpan函数能给这些存储的String添加各种格式或者称样式Span将原来的String以不同的样式显示出来比如在原来String上加下划线、加背景色、改变字体颜色、用图片把指定的文字给替换掉等等。所以总而言之SpannableString、SpannableStringBuilder与String一样也是传字符串但SpannableString、SpannableStringBuilder可以对这些字符串添加额外的样式信息但String则不行。 4、SpannableString、SpannableStringBuilder 它们的区别在于 SpannableString像一个String一样构造对象的时候传入一个String之后再无法更改String的内容也无法拼接多个 SpannableString而SpannableStringBuilder则更像是StringBuilder它可以通过其append()方法来拼接多个String //使用SpannableString必须一次传入构造完成 SpannableString word new SpannableString(abc);//使用SpannableStringBuilder,可以使用append()再添加 SpannableStringBuilder multiWord new SpannableStringBuilder(); multiWord.append(a); multiWord.append(b); multiWord.append(c);
http://www.w-s-a.com/news/743083/

相关文章:

  • 图书馆网站建设汇报免费编程软件哪个好用
  • 手机搭建网站工具网站搜索引擎优化的基本内容
  • 网站快速排名二手交易网站开发技术路线
  • 官方网站开发公司施工企业会计王玉红课后答案
  • 网站建设能用手机制作吗网站建设所需物资
  • 阜阳做网站的公司阳江招聘网最新消息
  • 织梦可以做哪些类型型网站wordpress 融资
  • 建设银行手机银行官方网站下载安装腾讯企点账户中心
  • 品牌设计网站有哪些商务网站建设平台
  • 新增网站备案时间什么是软件外包产业
  • 张家界做网站买了网站模版怎么做
  • 六安品牌网站建设怎么样知名商城网站建设报价
  • 怎么上传自己做的网站杭州网站建设公司平台
  • 网站开发程序是什么知名的电子商务网站
  • 做pc端网站好么平台推广是什么意思
  • 农业信息网站建设意义淘宝官网首页网址
  • 重庆网站设计公司价格贵阳网站建设app开发
  • dw做网站怎么换图片编写网页所用的语言是
  • 外贸网站收录工具个人网站的备案
  • 正规的网站建设工作室海外高延迟服务器做网站
  • 网站设计确认函合肥做网站维护的公司
  • 小说网站推荐网站开发语言怎么查
  • 网页制作基础教程慕课版电子版那种登录才能查看的网站怎么做优化
  • 制作网站用的域名网站域名注册信息查询
  • 公司域名查询官方网站女教师遭网课入侵直播录屏曝
  • 网站开发社交网络功能的作用腾讯公司网站
  • 网站建设需要微信账号和密码网站建设工作汇报
  • 国家城乡住房和建设部网站西安私人网站
  • 天津高端网站定制seo实战教程
  • 网站文章怎么做才能被快速收录网站备案核验系统