首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/butterfly/blog/4486445

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

一文看懂HashMap扩容为什么是2的n次幂

1.什么是HashMap? HashMap是Java中的集合类,是存放键值对形式的数据(Key和Value),例如QQ账号和QQ密码,QQ账号就是Key而密码则是Value。如下图所示(假如QQ账号为123456,密码为abcdef) 运行结果如下所示 如果存放相同的Key,那么Value将会被覆盖,类似于QQ更改密码,账号不会变,只有密码会进行更改。 运行结果如下所示 2.为什么扩容2的n次幂? 首先先看一下HashMap中的putVal方法(存值的)和resize方法(扩容的),之所以HashMap扩容是2的n次幂和这两个方法有千丝万缕的联系。 通过putVal方法可以看出来HashMap在存值时会先把key的hash值和扩容后的长度进行一次按位与运算,其中hash是在hash方法中把key进行计算后的出来的结果,n是扩容的长度(也就是数组的长度,默认为16),然后判断是否hash碰撞在进行不同的存储。如下图源码所示。 通过resize方法可以看出来扩容时会新建一个tab,然后遍历旧的tab,将旧的元素进行e.hash & (newCap - 1)的计算添加进...

目标检测算法YOLO-V3结构详解

❝ 上期我们一起学了YOLO-V2的算法结构以及跟YOLO-V1比起来有哪些优缺点,如下:目标检测算法YOLO-V2详解今天我们看下在YOLO-V2版本上改进的YOLO-V3算法,到底做了哪些优化? ❞ 今天我们主要从以下几个方面来学习YOLO-V3对YOLO-V2做了哪些改进。 Darknet-53结构 YOLO-V3结构 先验框设置 损失函数 模型性能 YOLO-V3模型框架 YOLO-V3模型框架,我们主要从它的基础网络Darknet-53以及YOLO-V3的结构方面学习,首先看下Darknet-53结构。 Darknet-53结构 Darknet-53是专门为YOLO-V3设计的一个深度学习框架,有着非常好的图像识别的效果,如下图: Darknet-53模型结构 整个网络主要包括5组残差块,如下: 以 256x256输入为例,首先经过一个 3x3x32的卷积层输出为 256x256x32; 接着经过一个 3x3x64 stride=2的卷积层输出为 128x128x64; 接着经过一个 残差块(前面学习残差网络的时候学过),输出为 128x128x64; 再经过一个 3x3x1...

相关文章

发表评论

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle

Oracle

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse

Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

JDK

JDK

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。