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

外贸网站dns北京seo顾问外包

外贸网站dns,北京seo顾问外包,学校网站建设需求分析,网站没有内容可以备案吗HashMap 的 table 数组何时初始化? 答案: table 数组在第一次调用 put() 方法时初始化。 为什么? HashMap 为了节省内存,采用了“懒加载”机制。即使用 new HashMap() 创建对象时,只是计算了参数(如容量、…

HashMap 的 table 数组何时初始化?

答案:
table 数组在第一次调用 put() 方法时初始化。
为什么?
HashMap 为了节省内存,采用了“懒加载”机制。即使用 new HashMap() 创建对象时,只是计算了参数(如容量、负载因子),并没有真正创建底层数组。只有当第一次插入数据(put)时,才会初始化 table 数组。

类比理解:
就像你买了一个书架(HashMap),但卖家不会直接寄给你,而是等你第一次需要放书(put)时,才根据你的需求(容量)组装好书架寄过来。


默认容量和扩容阈值是多少?

  1. 默认容量
    默认容量是 16(数组长度)。
    为什么是 16?
    16 是经验值,在性能和内存占用之间取得平衡。容量必须是 2 的幂(原因与哈希计算优化有关)。

  2. 默认扩容阈值
    默认阈值是 12(容量 × 负载因子)。
    负载因子(默认 0.75)的作用:
    阈值 = 容量 × 负载因子。当 HashMap 中的元素数量超过阈值时,触发扩容(数组翻倍)。


举个栗子 🌰

  1. 默认初始化:

    HashMap<String, Integer> map = new HashMap<>();
    
    • 此时 table 数组未初始化,容量和阈值均为 0。
    • 当第一次调用 map.put("a", 1) 时:
      • 初始化 table 数组为长度 16。
      • 计算阈值:16 × 0.75 = 12。
  2. 触发扩容:
    当插入第 13 个元素时,元素数量超过阈值 12,触发扩容:

    • 数组长度翻倍为 32。
    • 新阈值变为 32 × 0.75 = 24。

用户指定容量时会发生什么?

如果通过构造函数指定容量(如 new HashMap(10)):

  1. HashMap 会将其调整为最近的 2 的幂(例如 10 → 16)。
  2. 初始化时,阈值 = 调整后的容量 × 负载因子(例如 16 × 0.75 = 12)。

总结

场景初始化时机容量扩容阈值
默认构造函数第一次 put()1612(16×0.75)
指定容量的构造函数第一次 put()最近的 2 的幂容量 × 负载因子

关键点:

  • 容量始终是 2 的幂(优化哈希计算)。
  • 扩容是为了减少哈希冲突,保证性能。
http://www.tj-hxxt.cn/news/29966.html

相关文章:

  • php制作网站网站页面优化内容包括哪些
  • 清河做网站chrome浏览器下载安卓手机
  • 网站开发用户名不存在新闻热点事件2021(最新)
  • 网站多久企业推广文案
  • 百度网站是百度公司做的吗爱站网关键字挖掘
  • 企业在线购物网站建设青岛seo排名公司
  • 网站供应商代发怎么做seo如何去做优化
  • 计算机网站开发书籍网络销售怎么做才能有业务
  • 东莞住房建设网站的网商业软文案例
  • 如何让网站自适应手机推广网站怎么制作
  • 良庆网站建设如何自己建网站
  • 手机网站底部代码免费的html网站
  • html网站如何更新整站seo优化
  • wordpress底部美化搜索引擎优化策略包括
  • 新疆网站优化北京网站建设东轩seo
  • 网站的技术维护一般要做些什么google seo优化
  • 武汉哪里做网站好台州seo优化公司
  • 投资网站建设广东seo加盟
  • 找人做网站多少钱百度代理公司怎么样
  • 吉林长春网络公司有哪些杭州seo专员
  • 17我们一起做网站首页图片点击率如何提高
  • wordpress外国主题seo模拟点击算法
  • 怎么知道网站是php培训学校招生营销方案
  • 如何做网站系统合肥百度seo代理
  • WordPress静态文件生成安卓优化清理大师
  • 非商业组织的网站风格知乎关键词排名优化工具
  • 微信公众号登录wordpress网站安徽seo人员
  • 广州网站设计服务商郑州seo优化顾问
  • 购物网站销售管理seo免费外链工具
  • 响应式网站 推广效果地推团队接单平台