BitSet内部使用long[] words来保存位信息。咋看之下并不理解原因,在解读set(int bitIndex)之后似乎有了一些领悟。

public void set(int bitIndex) {

if (bitIndex < 0)
throw new IndexOutOfBoundsException("bitIndex < 0: " + bitIndex);

//用来计算应将bitIndex对应保存到哪个位置。long占用4个字节,64位(2的6次方),因此计算bitIndex对应着long数组的第几位。

int wordIndex = wordIndex(bitIndex);

//判断是否需要扩容。
expandTo(wordIndex);

//保存信息,将开关信息写入对应long的位信息当中。

words[wordIndex] |= (1L << bitIndex); // Restores invariants

checkInvariants();
}

private static int wordIndex(int bitIndex) {
return bitIndex >> ADDRESS_BITS_PER_WORD;
}

转载于:https://www.cnblogs.com/winnie-sr/p/3501712.html

BitSet之为什么用long保存信息相关推荐

  1. 用C语言实现 静态通讯录+动态通讯录+文件实现“退出保存信息版本”(附上思路+项目展示+源代码)

    前言 : 在生活中我们经常会遇到通讯录的使用,比如存进一个新的联系人的信息,或者对其删除,修改,查找:那这些神奇的功能是如何实现的?我们不禁好奇.今天,这篇博文将教会大家实现一个静态的或者动态的通讯录 ...

  2. Android_WebView加载网页保存信息到Cookie

    WebView加载网页保存信息到Cookie     一.知识点     1.WebView加载INTERNET网页        2.Android Activity和网页jsp之间传递参数     ...

  3. Android注册会员系统返回上一步时如何保存信息

    实例:(在注册一个系统会员的时候经常需要多个步骤,我们经常使用"上一步","下一步"来完成,那么当用户在返回"上一步"时应如何保存信息呢?) ...

  4. ASP.NET保存信息总结(Application、Session、Cookie、ViewState和Cache等)

    http://hi.baidu.com/xkplt/blog/item/c13e79097f579ea62fddd45f.html 以下是关于ASP.NET中保存各种信息的对象的比较,理解这些对象的原 ...

  5. C语言实现通讯录(使用文件保存信息)

    这两天把动态内存还有文件函数这部分的课听了一下,也跟着把通讯录升级了一下 存储元素不再是固定的了,当存储的元素等于上限时内存就动态增长 每次退出信息又会销毁,可以用fwrite 和 fread让它保存 ...

  6. Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息

    Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息 基础: Python 爬虫 之 Selenium.webdriver 的安装,以及模拟打开操作 ...

  7. 【Android UI】Canvas 画布 ③ ( Canvas 图层栈 | Canvas#saveLayer() 新建图层 | Canvas 状态栈保存信息标志位 )

    文章目录 一.Canvas#saveLayer() 新建图层 二.Canvas 状态栈保存信息标志位 Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ; 其中 图层 ...

  8. vs2010c语言通讯录读取,用C语言实现通讯录(二、动态版+文件保存信息)

    之前写的静态版的通讯录,只能存储固定数目大小的联系人信息,现在要升级为动态版的,这样只要容量不够的话只需自动扩容就可以啦!而且之前版本的信息每次退出程序后不会保存,每次需要重新录入,加入文件操作后可以 ...

  9. 有关cookie:验证_token、CSRF攻击、保存信息_cookie与本地存储、indexDB、

    浏览器"同源策略": ajax跨域限制.iframe跨域限制. LocalStorage跨域限制.Cookie跨域限制. W3C标准的浏览器:运行在不同域的JavaScript无法 ...

最新文章

  1. CentOS7 自定义登录前后欢迎信息
  2. sql and和in能连用吗_解析法律英语中【同义词连用】现象
  3. PostgreSQL学习手册(系统表)
  4. 单机 Oracle 11g(11.2.0.4)手动打补丁PSU(11.2.0.4.8)
  5. linux python pip卸载,Python pip的安装及卸载
  6. 人工智能技术或成为未来网络安全的引爆点和驱动力
  7. 搭建K8s集群(kubeadm方式)-操作系统初始化
  8. js匿名函数--转了
  9. 大数据总监python可视化分析30W数据后,找到了抹黑我们的原因
  10. APP软件半成品测试技巧
  11. TamperIE - 一个小巧的XSS漏洞检测辅助工具
  12. java插件-IE浏览器配置方法
  13. 我的日程安排表(2022-6-6)(内含I、II、III的解法)
  14. 易语言大漠插件模块制作窗口获取窗口句柄类
  15. php图片显示不了,如何解决php显示不了图片的问题
  16. 苹果的新技术3D Touch与以往的“长按屏幕”有何区别?
  17. 自己撸一个Wordcount
  18. 【STL详解】stack
  19. 拇指锁屏APP--新型手机赚钱秒到账到底靠谱不靠谱?
  20. Python基础之线程(Thread)

热门文章

  1. 深度学习之循环神经网络(11-a)LSTM情感分类问题代码
  2. 『操作系统』 进程的描述与控制 Part2 进程同步
  3. 『设计模式』我就要一个对象,你别给我这么多好不好!---单例模式
  4. JMeter压测入门简单使用
  5. 计组—存储以及字、位扩展
  6. Ubuntu 14.04系统下安装和编译QT 5.9.2库(桌面版/ARM嵌入式IMX6版)
  7. 【dlib opencv - detector landmark】 ubuntu上针对dlib-hog和opencv haar人脸检测与landmar-68在不同平台上运行时间实验结果汇总
  8. 时序约束基础 和 quartusII 中的设置
  9. 有钱了该不该提前还清房贷?
  10. Xilinx_ISE和ModelSim的联合使用方法 / 从Xilinx ISE 14.7启动ModelSim时遇到的问题