最近招了一个浑身软肋的员工,独生子28岁,孩子刚出生,媳妇全职太太,房贷150万,技术强

哎,老铁们,今儿咱们得聊聊那职场里的“隐形苦力”。

那些所谓的“优质员工”,说白了,就是一群背着山一样重担,还得在职场上狂奔的哥们儿姐们儿。

你们知道吗?这些大佬级别的员工,技术杠杠的,简直就是团队里的定海神针,但背后呢?

啧啧,那叫一个心酸! alt 想象一下,一个28岁的哥们儿,独生子,家里老婆全职带娃,房贷那数字直接戳心窝子——150万!

每个月睁眼闭眼都是钱,钱,钱!养老婆,养孩子,还得孝敬父母,这一身担子,比挑山工还累啊!

结果呢,他们成了领导眼中的“香饽饽”。 为啥?

因为好拿捏啊!

脏活累活,全往他们身上堆,还美其名曰“能者多劳”。

你说,这到底是夸呢,还是变相压榨?

更气人的是,有些领导啊,简直就是职场“吸血鬼”!

alt

看到你不敢轻易辞职,就各种加码,工作压得你喘不过气来。

你稍微说个“不”字,人家立马给你脸色看,说你效率低,让你加班到深夜。

这哪里是工作,简直是拿命在拼啊!

更别说那些怀孕的女同事了,挺着个大肚子还得被领导呼来喝去,手机从早到晚响个不停,跟催命符似的。

alt 哎,这世道,对咱们打工人真是太不友好了!

所以啊,老铁们,咱们得认清现实,这职场啊,就是个利益场,有时候你真的只是别人眼中的一颗棋子。

别总想着当什么“优质员工”,那背后付出的代价,可不是一般人能承受的。

咱们得学会保护自己,设立界限,别让那些无良领导把咱们当软柿子捏。

不过呢,咱也不能坐以待毙,对吧?来来来,几个小妙招送给你:

  • 界限大师:搞清楚自己的“能力圈”,超出范围的,果断say no!别不好意思,你的时间也很宝贵。
  • 沟通达人:跟领导唠唠嗑,说说你的不易,别让他们觉得你是铁打的。有时候,理解比啥都强。
  • 自我疗愈:压力大?运动、冥想走一波,身体是革命的本钱,心态崩了就啥都没了。

虽然职场路漫漫,单咱得学会给自己加点糖。

别忘了,每个努力的你,都值得被温柔以待!


言归正传。今天要分享的面试题是:

HashMap是如何存储元素的?

jdk1.8中的hashMap存储结构图示: alt jdk1.8中HashMap的put方法: alt

alt
alt
alt

注意:链转化红黑树treeifyBin方法如下

alt 进入treeifyBin方法的if条件中TREEIFY_THRESHOLD的值为8 ,TREEIFY_THRESHOLD-1=7且treeifyBin方法中MIN_TREEIFY_CAPACITY的值为64。故,链表的长度大于 8 且散列表容量大于 64**,是链表转化为红黑树的条件。

答:

简单地说,HashMap 的底层结构在 Java 7 中使用的是“数组 + 链表”,发生散列冲突的键值对会用头插法添加到单链表中;在 Java 8 中使用的是“数组 + 链表 + 红黑树”,发生散列冲突的键值对会用尾插法添加到单链表中,如果链表的长度大于 8 且散列表容量大于 64,会将链表树化为红黑树。

以JDK1.8为例。在JDK1.8中,HashMap进行put操作过程为:

  • 如果散列表为空时,调用resize()初始化散列表。

  • 计算关于key的hashcode值会计算key值的hash值,将(数组长度-1)和hash值进行&操作,得到数组的下标值。

  • 如果该下标下内容为空,新建node节点,直接添加到散列表中即可。

  • 如果下标内容不为空,分三种情况:

    • 第一种,还没有链化。比较key的hash值和引用或是equals,如果相同,则覆盖value。
    • 第二种,已经链化。遍历链表,判断节点的key值情况(同上),如果相同,则覆盖value;如果不同,则继续遍历链表,直到末尾,若链表的长度大于 8 且散列表容量大于 64,则将链表转红黑树,否则尾插法创建Node节点。(jdk1.7头插,1.8尾插)
    • 第三种,链表已经转化成红黑树。搜索树中节点,判断节点的key值情况,如果相同 ,则替换value,如果不存在,则在树中插入新的TreeNode节点。
  • 如果HashMap中存储的键值对数量超过了阈值,则调用resize()进行扩容。

本文由 mdnice 多平台发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值