HashMap中数组初始化的秘密

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

我们知道,在新建一个HashMap对象时,无论传的initialCapacity参数值为多少,最总HashMap中数组的长度始终为2的n次方,代码如下:

static final int tableSizeFor(int cap) {int n = cap - 1;n |= n >>> 1;n |= n >>> 2;n |= n >>> 4;n |= n >>> 8;n |= n >>> 16;return (n < 0) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1;
}

>>>表示忽略符号右移,不足补0

假设cap的值为10,那么n的值为9,对应二进制值为1001 经过n |= n >>> 1;计算,此时n对应的二进制值为1101 经过n |= n >>> 2;计算,此时n对应的二进制值为1111 依次类推,最后n对应的二进制的值为1111,对应十进制为15 根据最后的三元运算,该方法的返回值为16,也就是2的4次方

转载于:https://my.oschina.net/u/436693/blog/1845017

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

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

相关文章

PLSQL 安装+配置( Oracle数据库连接工具 )

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.找到免安装版本 PLSQL 解压到自己想放的位置 &#xff08;比如 D:\ChengXu\PLSQL\PLSQL&#xff09; 2.配置环境变量 : 系统变量…

什么是Nginx?为什么使用Nginx?

一、前言为毛要用nginx服务器代理&#xff0c;不直接用tomcat 7.0&#xff0c;还做多了一次接请求&#xff1f;这个是我想问的&#xff0c;公司的新项目是要用Nginxtomcat7jdk开发的&#xff0c;用户命名可以直接访问tomcat&#xff0c;为啥还要用Nginx&#xff1f;这货是个啥玩…

遵循五大设计理念 打造出色设计师

与其他设计不同&#xff0c;网页设计会随着时间的改变而不断改变着。因此&#xff0c;网页设计师需要不断的自我提升&#xff0c;了解最前沿的设计趋势以便能够设计出更加新颖的网站。 两年前&#xff0c;网页设计呈现出一片新的思维方式和新颖的设计趋势使得该领域彰显出一片…

shell符号

*&#xff1a; 通配符 *.c &#xff1a; c结尾的文件 *v &#xff1a; v结尾的文件 v* &#xff1a; v开头的文件转载于:https://www.cnblogs.com/runlgs/p/9685751.html

伪共享和缓存行填充,Java并发编程还能这么优化!

前言 关于伪共享的文章已经很多了&#xff0c;对于多线程编程来说&#xff0c;特别是多线程处理列表和数组的时候&#xff0c;要非常注意伪共享的问题。否则不仅无法发挥多线程的优势&#xff0c;还可能比单线程性能还差。随着JAVA版本的更新&#xff0c;再各个版本上减少伪共享…

mysql中like % %模糊查询

1&#xff0c;%&#xff1a;表示任意0个或多个字符。可匹配任意类型和长度的字符&#xff0c;有些情况下若是中文&#xff0c;请使用两个百分号&#xff08;%%&#xff09;表示。 比如 SELECT * FROM [user] WHERE u_name LIKE %三% 将会把u_name为“张三”&#xff0c;“张猫三…

Java中判断字符串是否为数字的五种方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 推荐使用第二个方法&#xff0c;速度最快。 方法一&#xff1a;用JAVA自带的函数 Java代码 public static boolean isNumeric(String…

慕学在线网0.4_xadmin后台管理

admin是基于Django开发的后台管理框架&#xff0c;方便&#xff0c;快捷&#xff0c;而且简单&#xff1b;   而xadmin就相当于admin的升级版&#xff0c;更加强大。    1、安装xadmin&#xff08;源码安装方式&#xff09;  教程 PS&#xff1a; - 卸载pip安装的xadminp…

从一次换机器的过程谈软硬件的分离

今天把在公司使用的计算机更换了一台&#xff0c;原来是Dell的780&#xff0c;换成了Dell的790&#xff0c;机箱的样子变化比较大&#xff0c;但是里面硬件的配置变换并不大&#xff0c;最明显的变化就在于CPU&#xff0c;其他像内存、硬盘等等的配置与原来的计算机基本上一致。…

知其所以然~redis的原子性

原子性 原子性是数据库的事务中的特性。在数据库事务的情景下&#xff0c;原子性指的是&#xff1a;一个事务&#xff08;transaction&#xff09;中的所有操作&#xff0c;要么全部完成&#xff0c;要么全部不完成&#xff0c;不会结束在中间某个环节。 对于Redis而言&#xf…

JoinPoint的用法

JoinPoint 对象 JoinPoint对象封装了SpringAop中切面方法的信息,在切面方法中添加JoinPoint参数,就可以获取到封装了该方法信息的JoinPoint对象. 常用api: 方法名功能Signature getSignature();获取封装了署名信息的对象,在该对象中可以获取到目标方法名,所属类的Class等信息…

解决 No projects are available for deployment to this server!

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 如题&#xff0c;今天在尝试部署从SVN上down下来的项目时&#xff0c;发现不能被tomcat识别成web项目&#xff01;原因是SVN上down下来的…

地大信工成果快报

在成果快报投稿中&#xff0c;请注意以下几个问题&#xff1a;&#xff08;1&#xff09;成果信息一定要准确、全面&#xff0c;所有作者必须都要列出来&#xff0c;而不要出现et al. 这样的表述&#xff0c;通讯作者一定要用*号标注&#xff1b;&#xff08;2&#xff09;成果…

javaBean的命名规则

前段时间&#xff0c;写程序时&#xff0c;出了错误&#xff0c;竟然没有想到是自己属性命名的问题&#xff0c;哎~~~真是一定要注意规范呀&#xff0c;在这里我从网上找了些&#xff0c;规范作为参考 Sun 推荐的命名规范 1 &#xff0c;类名要首字母大写&#xff0c;后面的单词…

volatile的应用

volatile&#xff0c;中文意思是不稳定的、反复无常的&#xff0c;用来修饰变量&#xff0c;和多线程、并发有关系。 Java代码在编译后会变成Java字节码&#xff0c;字节码被类加载器加载到JVM里&#xff0c;JVM执行字节码&#xff0c;最终需要转化为汇编指令在CPU上执行。 在多…

漫谈国内智能手机市场现状

本文纯属一时兴起&#xff0c;想到哪儿写到哪儿&#xff0c;本人文笔也不咋地&#xff0c;写的也比较随意&#xff0c;如有错误欢迎指正&#xff0c;有啥意见欢迎交流。原创文章&#xff0c;转载注明emouse的技术专栏。 我是一个不折不扣的数码爱好者&#xff0c;对电脑手机这些…

【刷题】BZOJ 4195 [Noi2015]程序自动分析

Description 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。 考虑一个约束满足问题的简化版本&#xff1a;假设x1,x2,x3,…代表程序中出现的变量&#xff0c;给定n个形如xixj或xi≠xj的变量相等/不等的约束条件&#xff0c;请判定是否可以分别为每一个…

mysql 5.5 安装配置方法图文教程

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 回忆一下mysql 5.5 安装配置方法&#xff0c;整理mysql 5.5 安装配置教程笔记&#xff0c;分享给大家。 MySQL下载地址&#xff1a;htt…

git解除与远程分支的关联

在工作中&#xff0c;经常需要将同一份代码传到不同的git仓库中去 如果本地同样一份代码&#xff0c;已经关联了一个与远程分支&#xff0c;那么怎么才能解除原程分支&#xff0c;并关联到一个新的分支将代码提交到新的分支上去呢&#xff1f; 1、如果你已经在远程创建了一个分…

FindWindow用法

函数功能&#xff1a;该函数获得一个顶层窗口的句柄&#xff0c;该窗口的类名和窗口名与给定的字符串相匹配。这个函数不查找子窗口。在查找时不区分大小写。 函数型&#xff1a;HWND FindWindow&#xff08;LPCTSTR IpClassName&#xff0c;LPCTSTR IpWindowName&#xff0…