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

自己做软件 做网站需要学会哪些厦门外贸网站建设公司

自己做软件 做网站需要学会哪些,厦门外贸网站建设公司,山东省建设人才网站,在线浏览器入口ArrayList底层的实现原理是什么 底层数据结构 ArrayList底层是用动态的数组实现的 初始容量 ArrayList初始容量为0#xff0c;当第一次添加数据的时候才会初始化容量为10 扩容逻辑 ArrayList在进行扩容的时候是原来容量的1.5倍#xff0c;每次扩容都需要拷贝数组 添加逻… ArrayList底层的实现原理是什么 底层数据结构 ArrayList底层是用动态的数组实现的 初始容量 ArrayList初始容量为0当第一次添加数据的时候才会初始化容量为10 扩容逻辑 ArrayList在进行扩容的时候是原来容量的1.5倍每次扩容都需要拷贝数组 添加逻辑 确保数组已使用长度size加1之后足够存下下一个数据. ​计算数组的容量如果当前数组已使用长度1后的大于当前的数组长度则调用grow方法扩容原来的1.5倍 确保新增的数据有地方存储之后则将新元素添加到位于size的位置上。​ 返回添加成功布尔值。 ArrayList listnew ArrayList(10)中的list扩容几次 该语句只是声明和实例了一个 ArrayList指定了容量为 10未扩容  如何实现数组和List之间的转换 数组转List String[] strs {aaa,bbb,ccc}; ListString list Arrays.asList(strs); List转数组 ListString list new ArrayListString();list.add(aaa);list.add(bbb);list.add(ccc);String[] array list.toArray(new String[list.size()]); 用Arrays.asList转List后如果修改了数组内容list受影响吗 修改了数组的内容list会受影响因为它的底层使用的Arrays类中的一个内部类ArrayList来构造的集合在这个集合的构造器中把我们传入的这个集合进行了包装而已最终指向的都是同一个内存地址 List用toArray转数组后如果修改了List内容数组受影响吗 修改了list内容数组不会影响当调用了toArray以后在底层是它是进行了数组的拷贝跟原来的元素就没啥关系了所以即使list修改了以后数组也不受影响 ArrayList 和 LinkedList 的区别是什么 底层数据结构 ArrayList 是动态数组的数据结构实现 LinkedList 是双向链表的数据结构实现 操作数据效率 查找时间复杂度都是O(n) 新增和删除时间复杂度是O(n) 内存空间占用 ArrayList底层是数组内存连续节省内存 LinkedList 是双向链表需要存储数据和两个指针更占用内存 线程安全 都不是线程安全的 在方法内使用局部变量则是线程安全的 使用线程安全的ArrayList和LinkedList ListObject syncArrayList Collections.synchronizedList(new ArrayList()); ListObject syncLinkedList Collections.synchronizedList(new LinkedList());二叉搜索树 在树中的任意一个节点其左子树中的每个节点的值都要小于这个节点的值而右子树节点的值都大于这个节点的值,没有键值相等的节点 红黑树 一种自平衡的二叉搜索树(BST) 性质1节点要么是红色,要么是黑色 性质2根节点是黑色 性质3叶子节点都是黑色的空节点 性质4红黑树中红色节点的子节点都是黑色 性质5从任一节点到叶子节点的所有路径都包含相同数目的黑色节点 在添加或删除节点的时候如果不符合这些性质会发生旋转以达到所有的性质 散列表Hash Table 是根据键Key直接访问在内存存储位置值Value的数据结构,利用了数组支持按照下标进行随机访问数据的特性 散列函数计算得到的散列值必须是大于等于0的正整数因为hashValue需要作为数组的下标。 如果key1key2那么经过hash后得到的哈希值也必相同即hash(key1) hash(key2 如果key1 ! key2那么经过hash后得到的哈希值也必不相同即hash(key1) ! hash(key2) 散列冲突 不同的key计算得到的散列值都不同几乎是不可能的 链表法拉链 所有散列值相同的元素我们都放到相同槽位对应的链表中,链表法中的链表如果是红黑树可以防止DDos攻击 HashMap实现原理 底层使用hash表数据结构即数组和链表或红黑树 当我们往HashMap中put元素时利用key的hashCode重新hash计算出当前对象的元素在数组中的下标 存储时如果出现hash值相同的key此时有两种情况 a. 如果key相同则覆盖原始值 b. 如果key不同出现冲突则将当前的key-value放入链表或红黑树中 获取时直接找到hash值对应的下标在进一步判断key是否相同从而找到对应值。 链表的长度大于8 且 数组长度大于64 转换为红黑树减少搜索时间 红黑树拆分成的树的结点数小于等于临界值6个则退化成链表 jdk1.7采用的是拉链法 链表和数组相结合 HashMap的put方法的具体流程 HashMap是懒惰加载在创建对象时并没有初始化数组 在无参的构造函数中设置了默认的加载因子是0.75 讲一讲HashMap的扩容机制 hashMap的寻址算法 计算对象的 hashCode() 再进行调用 hash() 方法进行二次哈希 hashcode值右移16位再异或运算让哈希分布更为均匀 最后 (capacity – 1) hash 得到索引 hashmap在1.7情况下的多线程死循环问题 尾插法
http://www.pierceye.com/news/197584/

相关文章:

  • 中山做网站费用网页制作简明教程
  • 芜湖做网站需要多少钱青岛网站建设公司怎么选
  • 塑胶 东莞网站建设企业网络推广培训
  • wordpress五分钟建站手机网站 cms
  • 网站前台后台河南省建设工程质量协会网站
  • wordpress无法拖动小工具长沙seo网站推广
  • 网站的推广方案的内容有哪些网站建设所需技术
  • 手机微网站怎么制作的威特视频网站建设方案
  • 视频播放网站开发的报告潮州网站网站建设
  • 如何查询网站域名备案建设网站找什么问题
  • 南开大学 网站开发技术 刘冲网站排名优化有哪些牛霸天的软件1
  • 高品质网站设计北京市地铁建设管理公司网站
  • 初次建设网站的技巧织梦做分类信息网站
  • 宣讲家网站官网加强作风建设网站业务怎么做的
  • 厚街网站建设价格做办公室的网站
  • 青海做网站找谁wordpress gif缩略图
  • 手机网站全屏显示如何把自己做的网站放到微信上
  • 网站建设云雅淇wordpress
  • 工作室网站需要备案吗python基础教程编程题
  • 建设工程人才招聘信息网站响应式网站 cms
  • 设计签名免费网站福州的网站建设
  • 太原这边有做网站的吗wordpress实现pdf浏览
  • 制作微信公众号的网站开发30岁做网站运营
  • 松江手机网站开发正规免费代理
  • 太原市建设路小学网站昆山住房与城乡建设局网站
  • 石家庄的网站的公司计算机应用技术专业网站开发方向
  • 网站优化软件排行榜八年级微机网站怎么做
  • 织梦网站漏洞cms网站开发流程
  • 网站开发规划书怎么写企业cms开源
  • html网站免费下载海珠区建网站