粉丝5获赞40





有假发,我自信。这一期我们来说说 jdk 一点八中的 hasmap 的扩容机制。首先我们来看看 hasmap 的初始容量, hashmap 如果使用默认的方式创建,默认的初始容量是十六,如果我们指定了初始容量,比如指定为二十四,实际上 hasmap 会通过计算得到一个 大于等于二十四的二的整次秘书,三十二作为初始容量。为什么呢?因为二的正次秘书有统一的规律,可以通过为运算快速的计算出元素的,所以关于所以的计算在上一个视频中已经讲解过,这里就不再坠述。接下来我们来看看 hex map 扩容的情况。 hex map 在两种不同的情况下会扩容。第 第一就是元素个数到达了扩容的预值,这个扩容的预值是通过容量和负载因子计算的,默认的负载因子是零点七五,也就是说如果数组长度是十六,那么扩容的预值就是十二。如果数 数组的长度是三十二,那么扩容预值就是二十四,当然这个预值也是有最大值的。这部分后面再说。了解到这里,也就是说第一种扩容的情况就是当元素个数超过了当前的扩容预值,就会将数组扩容。那么接下来说第二种扩容的情况,在还是 map 中有一个最小数化容量 确认值是六十四。假如数组的某个位置上的链表个数到达了八个,但是数组的长度还没有到达六十四。 hash map 不会竖画这个链表,而是对数组进行扩容。这也是上上个视频中有朋友说我讲的有问题的部分。继续说 hash map 如何扩容?如果需要扩容, smap 会对原有的容量和扩容预值进行左移一位的运算,其实就是翻倍。根据新计算出来的容量值和预值创建新的数组,然后将原来数组中的所有元素重新计算位置,并且移动到新的数组上 对应的位置。当数组的长度大于或者等于六十四之后,如果某个列表的元素到达八个 hash map, 就会将这个列表转换为红黑数,当少于六个的时候又会转换为列表。继续说说 hash map 的容量上限。 house map 定义了一个最大的容量值 2 的 34 方,当数组的容量超过或者等于 2 的 34 方时,扩容的预值会直接设置为整形的最大值,也就是 2 的 31 次方减一。当然到达最大值的时候还是 map 也不会再扩容了。可能有人要问,不再扩容, 如果元素过多怎么办?其实一般情况都是还没有到最大值,内存就一出了。如果真的到达了最大值,并且数组所有位置都不为空,那么就是继续给对应位置上的列表或者红黑数继续添加新的节点,这就是 jdk 一点八中还是 map 的扩容。


下面呢,老师给大家讲课了啊,认真听都能看到我的屏幕吧,是不能看到耿妍听课了,信不信腾云会议啊 啊,在里边呢是吧?刚才那个会议关了,现在这个会议刚起。 辉浩,你上前面看去啊,这有四五五三七八九四幺 四五五三七八九四幺。 那么 idea 为核心的几个软件的安装过程应该是先安装 j d k, 再安装 menu, 最后再装 idea, 进行相应的配置。那么 j d k 我们有没有呢? 我们看一下 java 杠 version, 这有 这有 jdk。 嗯嗯,那不知道 to the gym, 这不这呢吗, 但是好像装的有问题。卸了重装吧, 一个东西看东西 卸了是吧,卸了之后呢 啊,再进到这里 没有了是吧?好,卸,卸干净了,然后我们再进行安装 j d k。 对 啊,这个版本的这个 j d k 啊,微文的 idea 我做了很多程序了啊,以前用的是二零一九版的 idea, 现在用的是二零二三版的, 就下一步,下一步就可以。 因为 j d k 不是很大, 所以说你想装到 c 盘就可以,然后假如说你说我想装到 d 盘,也可以,选择一下目录, 装饰品都一样。对,这个好,装吧,是不是完成关闭?装完了之后需要配置环境变量。配置环变环境变量的方法是你把它不是装到这里了吗? 对吧?复制目录,你刚才点这了,你刚才点的是这,看到了吧,点他后边的,点后面的就可以直接复制了。 然后机械给我两分钟时间啊,把这个环境变量配好,咱们就下课了啊,对,环境变量先进, 你看啊,这里面你们有对于扎瓦的软件进行配置环境变量,扎瓦下划线后,我们就是扎瓦的家,扎瓦的家,扎瓦的根就是在 c 盘的 program fils 扎瓦 gdk 一点八点零零五里,对吧?他的家在哪?就在这。 然后呢,再设置一个 class p a t h class pass, 不是 class pass, 嗯, pass, 对,写个点儿是不是?嗯, 然后呢,再来个 pass, pass 呢?写上新建,然后斜杠不是往那边,是往这边。对, 现在呢,环境变量就配好了。是啊,配好了之后,咱试的时候一定要新起一个中专,中专。然后呢,打上扎哇杠,窝身 回车。来了,来了,他告诉你来啥了?告你扎哇莴笋是一点八点零零五吧,对不对?然后我们具体的命令看好不好使。 java c java, 你发现了吗?刚才他 java c 的命令不好使,对,对不对?哎,这第一个就完事了。然后是不是到下课点了?嗯,下课 下面我们继续啊,我们已经安装了 j d k, 并且配置了环境变量,并且对于 j d k 进行了测试,对吧?然后第二个问题,第二步是干什么了? 没稳吧,对不对?把没稳进行解压缩,因为你不能给他一个压缩文件呢, 这不行。对,解压缩之后呢,我们可以给他放到地盘上,是不是?是不放到地盘上?没多大,这地方就是这个妹妹,你看啊,他一共占多大地方? 九点多到九点九二,这,对啊,很小是吧?然后我们进到这里一定能看到并对并,然后呢再进行 control c, ctrl c。 然后呢进行一个环境变量的设置,我们要设置的环境变量有两个,一个是 m 二下滑线,什么呀? m 二下划线 home 吧,就是 may one 的 加,对不对?然后呢再进行设置 p a t h p a t h 呢设置 me 文下的什么 b 这边是吧边这一定要设置啊设置好了之后呢 设置好了之后我们把这个关了我们再起一个对认最新的环境变量这是目的 m v n 杠 v 对吧小 v 看到没问了吧 apart 没问三点五没问 home 是吧。 配置好了 made 稳之后然后咱们再进行安装 idea 并且对 idea 进行一个配置那么 idea 在哪。在这儿吧 这个是社区版社区版是不需要花钱的哦。 正常买要花钱是吗。嗯正常买需要花一嗯然后你装 c 牌还是 d 牌我看你 c 牌多地方 不知道你装 c 盘呢。装地盘装地盘我装地盘装地盘。 直接换位置不就由 c 改为 d 不就完了吗。啊那调节也行。行啊然后把这这这这 都点上哈大概得等几分钟 again 这格子我都不满意。嗯嗯好这没坏 与梦想 十几个给个信息你早点去冷不冷。 这是立即重启这个是迟一点重启 yeah look 你承认 啊这装完了取消你装完了下面有。对然后这是协议你就说你同不同意吧 然后这里边这个是定制大可是黑色的 light 是亮的对吧你要嫌他刺眼睛你可以调一调你的这个电脑的这个亮度啊但这个看着比较清晰尤其是我这种眼神不太好的。 然后呢刚才咱咱还配啥了。配这个 all settings 记住了 all settings 嗯 octin 这里配没文了还记得 bill 的吗。 bill 的 bill 的兔子对吧 vivo 然后你看他这个就有啊他这有 d 盘。对他俩都有就你没有但也好使但是我的好使。对好使 ok 然后这个那个你就得加载,也叫 p, 然后是不是减 may one 的?嗯,咱们是 may one 项目啊,进去之后加载,进去之后加载,加载个七八分钟吧。嗯,差不多差不多。 哼, 以下的疑问 你,你把我那个录屏给关了没有啊?没关啊,跑起来了。没关,那是藏的。 咳, 现在呢?这位同学的 idea 里啊,这个工程 p 一下载魅文库失败,我们从其他同学的电脑中啊找到他的这个魅文库的相关的。这个库 是 user 四,看到了吧。用户,你这用户名是哪个?这个吧,嗯,然后是 m 二,把这个夹子压缩的一个 zip 包压缩。能压缩吗?这不用压缩啊, 发给他有他微信吗?有,有,下面那个还是上面那个是哪个?下面是压缩包啊,这个是吗?嗯 嗯, bina。 哎呀, 你说找能找着,咋没找着啥呀?啥找不着了,来就走,还打给你一个就行。 这个吧,这,这个是不是下面这个下面压缩用压缩的呀?好, 刘川用哈, 八倍能看着都是挺酷的。看着我这边的操作啊看着我这边的操作。 如果一辈子 rather some year, lady could。 就这些呗,全都是 ctrl c 是吧,不知道哪里去呢。用户,这 把这些给你删了,他少,他就是一个少,少太多了,都没下载下来。 ctrl v uc。 好嘞,少这么多东西, 然后这边再刷新一下, ok, 成功了,成功了,对吧?所以说做程序一个是互相研究,一个是互相帮助,对不对?团队的这种学习,然后我 转一下子运行就出来了。嗯,出来了是吧,环境好使了。 ok, 那么我们以 id 为核心的几款软件啊, j d k may 为啊, idea 都已经安装成了,其中 j d k 是一点八零五, mateway 是三点五, idea 是二点二三零三还是零二啊?大概是二零二三零二版本。
