小型网站设计及建设设计方案评价

news/2025/9/24 4:53:19/文章来源:
小型网站设计及建设,设计方案评价,阿里巴巴国际平台,小程序商家文章目录 JDK7 vs JDK8 的 HashMap 结构变化Java8 中哈希表的红黑树优化机制HashMap 添加元素的完整流程解析1. 计算 key 的哈希值并确定索引2. 检查该索引位置是否已有元素3. 处理哈希冲突4. 判断当前存储结构#xff08;链表还是红黑树#xff09;5. 判断链表长度是否超过 … 文章目录 JDK7 vs JDK8 的 HashMap 结构变化Java8 中哈希表的红黑树优化机制HashMap 添加元素的完整流程解析1. 计算 key 的哈希值并确定索引2. 检查该索引位置是否已有元素3. 处理哈希冲突4. 判断当前存储结构链表还是红黑树5. 判断链表长度是否超过 86. 触发扩容的判断7. 进行扩容8. 迁移元素 流程图补充HashMap 的初始容量与负载因子优化 JDK7 vs JDK8 的 HashMap 结构变化 在 JDK7 及更早版本HashMap 采用 数组 链表 结构当哈希冲突较多时链表可能变得很长导致查询性能从 O(1) 退化到 O(n)。 在 JDK8为了优化链表查询性能引入了红黑树 仍然采用 数组 作为底层存储。当某个桶中的链表长度 超过 8并且 table 的大小 ≥ 64 时链表转换为 红黑树。这样在极端情况下查询性能从 O(n) 降低到O(log n)。 Java8 中哈希表的红黑树优化机制 从JDK8开始为了优化哈希冲突情况下的查找性能当哈希桶中的链表长度超过 8 时链表会转换为红黑树。红黑树是一种自平衡二叉搜索树将最坏情况下的查找复杂度从 O(n) 降低到 O(log n)。如果没引入红黑树则最坏查找复杂度是O(n) 当树中元素数量低于 6 时红黑树会退化回链表以减少不必要的树操作开销提高小规模数据场景下的性能。 HashMap 添加元素的完整流程解析 1. 计算 key 的哈希值并确定索引 通过 key.hashCode() 计算出哈希值。采用 (哈希值 (table.length - 1)) 计算索引以确定 key 应该存放在 table 数组中的那个位置。 2. 检查该索引位置是否已有元素 如果该索引位置为空table[index] null说明当前 key 没有发生哈希冲突直接存入该位置并检查是否需要扩容。【在 HashMap 里负载因子loadFactor默认值是 0.75表示当元素个数达到 容量 * 0.75 时就会触发扩容】如果该索引位置已有元素说明发生了哈希冲突进入下一步处理。 3. 处理哈希冲突 在索引位置已有元素的情况下需要判断该 key 是否已经存在 如果 key 与已有节点的 key 相同说明是更新操作直接替换 value。如果 key 不同说明该索引位置是个链表或红黑树需要进一步处理。 4. 判断当前存储结构链表还是红黑树 如果该索引处存储的是红黑树按照红黑树的插入规则执行插入操作流程结束。如果是链表则遍历链表 如果链表中存在相同的 key则更新 value流程结束。如果链表中没有相同 key则在链表末尾插入新节点并继续下一步处理。 5. 判断链表长度是否超过 8 如果链表长度 ≤ 8不做额外处理。如果链表长度 8则需要判断是否转换为红黑树 如果 table 长度 64则将链表转换为红黑树流程结束。如果 table 长度 64则不转换为红黑树而是触发扩容见步骤 7。 6. 触发扩容的判断 在完成插入后需要判断是否需要扩容 size 阈值threshold table.length * 0.75 时触发扩容。扩容是基于整个 HashMap 的大小而不是单个链表的长度即使单个链表过长也不会单独扩容而是考虑整体 size。 7. 进行扩容 扩容策略table 容量翻倍如 16 → 3232 → 64。调整扩容阈值新阈值 新容量 * 0.75。重新计算 key 的索引 由于 table.length 发生变化所有 key 需要重新计算索引并迁移到新的 table。HashMap 采用高位 低位拆分的方式优化了 rehash 过程使得某些 key 的新索引保持不变而另一些 key 需要移动到新位置。 8. 迁移元素 旧 table 的数据逐个迁移到新 table。迁移规则 计算 oldIndex hash (oldCapacity - 1)newIndex hash (newCapacity - 1)。低位不变高位索引变化减少数据迁移的计算量。 流程图 补充 HashMap 的初始容量与负载因子优化 HashMap 的默认初始容量为 16负载因子为 0.75这一组合在性能与空间之间取得了平衡。较高的负载因子如 1.0可减少空间浪费但会增加哈希冲突的概率较低的负载因子则减少哈希冲突但会增加内存开销。 如果可预估 HashMap 的存储需求建议提前设置合适的初始容量以减少动态扩容带来的性能损耗。 ❤觉得有用的可以留个关注~~❤

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深圳做外贸网站的公司wordpress收费下载资源插件

(201) 201 三十0 中断优先级补充 (202) 202 三十1 TCP的用户需求 函tcp_usrreq一 (203) 203 三十2 TCP的用户需求 函tcp_usrreq二 (204) 204 三十3 TCP的用户需求 函tcp_usrreq三 (205) 205 三十4 TCP的用户需求 函tcp_usrreq四 (206) 206 三十5 TCP的用户需求 函tcp_usrreq五 …

美食网站html代码ui培训班哪家好

为什么需要Schema Register 注册表 无论是使用传统的Avro API自定义序列化类和反序列化类 还是 使用Twitter的Bijection类库实现Avro的序列化与反序列化,这两种方法都有一个缺点:在每条Kafka记录里都嵌入了schema,这会让记录的大小成倍地增加。但是不管怎样,在读取记录时…

阿里云建站的优缺点企业网站建设规划可行性分析

全世界只有3.14 %的人关注了青少年数学之旅(图源 阿粪青,侵权删)

网站的邀请怎么做的手机网站 模板

电脑自动弹出网页的解决方法:我们可以利用360安全卫士中的弹窗过滤工具来解决此问题。首先我们打开360安全卫士;然后找到弹窗过滤工具;最后选择【强力模式】,保存设置即可。电脑自动弹出网页可以使用360安全卫士来进行弹窗拦截。打…

asp 网站 500wordpress在php什么版本

游戏公司面试题系列-CocosCreator实现虚拟摇杆控制角色移动&中心旋转自转小球&割草旋转逻辑<&#xff01;&#xff01;&#xff01;文章末尾有完整代码下载链接地址&#xff01;&#xff01;&#xff01;> Hello大家好&#xff01;今天我们来用最新的CocosCreat…

WordPress激活邮件链接无效网站购物分享seo

物联网&#xff08;Internet of Things&#xff0c;IoT&#xff09;是指将各种物理设备、车辆、家用电器、工业设备等通过网络连接起来&#xff0c;实现数据交换和通信的技术。物联网操作系统是管理这些设备并使其能够相互通信的软件平台。以下是一些常见的物联网操作系统&…

网站建设合同百度文库中国在线商城注册管理平台

现在越来越多的人或公司都想开发出自己的直播网站或者直播APP&#xff0c;但是在技术这一块又不知道怎么下手&#xff0c;那么我就给大家讲一下在视频直播系统开发中要了解那些知识和技术&#xff1a; 在开发上需要用的技术有&#xff1a; 摄像头采集 音视频编解码 流媒体协议…

湖南建设局网站大连网站开发培训班

1 概要说明 使用微信扫描登录相信大家都不会陌生吧&#xff0c;二维码与手机结合产生了不同应用场景&#xff0c;基于二维码的应用更是比较广泛。为了满足ios、android客户端与web短信平台的结合&#xff0c;特开发了基于SinglarR消息推送机制的扫描登录。本系统涉及到以下知识…

网站建设永远在路上国际购物网站有哪些

摘 要 本系统为用户而设计制作旅游信息管理系统&#xff0c;旨在实现旅游信息智能化、现代化管理。本旅游信息管理自动化系统的开发和研制的最终目的是将旅游信息的运作模式从手工记录数据转变为网络信息查询管理&#xff0c;从而为现代管理人员的使用提供更多的便利和条件…

信贷 网站模板 下载网站文字规划

1、GitHub遭遇严重的供应链“投毒”攻击&#xff0c;影响GG平台 多年来&#xff0c;威胁行为者一直在使用多种策略、技术和程序 &#xff08;TTP&#xff09;&#xff0c;包括劫持 GitHub账户、分发恶意 Python 包、使用虚假的 Python 基础设施以及社会工程进行攻击&#xff0c…

网站建设如何创建框架页面记事本代码做网站

执行流程 spring中Bean对象的执行流程大致分为四步: 启动Spring容器实例化Bean对象Bean对象注册到Spring容器中将Bean对象装配到所需的类中 ①启动Spring容器,在main方法中获取spring上下文对象并配备spring. import demo.*;import org.springframework.context.Applicati…

企业网站建设推广含义重庆潼南网站建设公司电话

一、前言 随着深度学习在图像、语言、广告点击率预估等各个领域不断发展&#xff0c;很多团队开始探索深度学习技术在业务层面的实践与应用。而在广告CTR预估方面&#xff0c;新模型也是层出不穷&#xff1a; Wide and Deep[^1]、DeepCross Network[^2]、DeepFM[^3]、xDeepFM[^…

广德做网站护肤品网站制作 网新科技

关于JSP页面无法加载css&#xff0c;游览器访问jsp页面样式未生效导致乱序 1.修改自己过滤器中对编码格式的修改 如图&#xff1a; 代码如下&#xff1a; public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOE…

制作外贸网站开发asp.net 价格查询网站

为什么使用消息队列&#xff08;如RocketMQ&#xff09;&#xff1f; 异步处理&#xff1a;解耦系统间调用&#xff0c;提高响应速度。解耦&#xff1a;降低模块间的直接依赖&#xff0c;使系统更易于扩展和维护。流量削峰&#xff1a;在高峰期将请求暂时存储起来&#xff0c;…

长沙做网站一般多少钱wordpress如何添加注册登录

1.链表 1.1 链表的概念及结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表 中的指针链接次序实现的 。 现实中&#xff1a;链表就像是一列动车&#xff0c;一节连着一节 数据结构中的链表 注意: 1.从上图可看出…

xampp做网站可以吗清远做网站的公司

任务已完成&#xff0c;聚类效果很好&#xff08;主要在于数据的处理以及特征工程&#xff09;, 需代码si&#xff0c;yuer有限先到先得。

网站建设后怎么写网站开发建设好处

|疑惑 最近在学习Python的过程中了解到位运算符&#xff0c;但对于按位取反有点迷糊&#xff0c;就比如说~9&#xff08;按位取反&#xff09;之后的结果是-10&#xff0c;为什么不是6呢&#xff1f;所以下面就来看看为什么不是6&#xff0c;正确结果是如何计算出来的呢&#x…

深圳网站建设科技有限公司住房和城乡建设部网站科技项目

目录 1、直接执行JS代码 🌐 1.1 execute_script基础用法 1.2 带参数执行JS函数 1.3 获取执行结果 2、使用execute_async_script异步执行 🔄 2.1 适用场景分析 2.2 实现异步操作示例 2.3 错误处理与调试技巧 3、JS与页面元素交互 👤 3.1 修改DOM属性 3.2 触发事…

怎么做出有品牌感的网站分析不同网站的优缺点

文章目录 前言一、为什么推荐使用java.time包的LocalDateTime而不是java.util的Date&#xff1f;二、使用LocalDateTime和LocalDate时遇到了哪些坑&#xff1f;2.1 Redis序列化报错2.1.1 问题现象2.1.2 问题分析2.1.3 解决方案 2.2 LocalDateTime和LocalDate类型的属性返回给前…

大良营销网站建设咨询阿里云 rds wordpress

使用 Service 把前端连接到后端 如何创建前端&#xff08;Frontend&#xff09;微服务和后端&#xff08;Backend&#xff09;微服务。后端微服务是一个 hello 欢迎程序。 前端通过 nginx 和一个 Kubernetes 服务暴露后端所提供的服务。 使用部署对象&#xff08;Deployment ob…