传联想上海 isg 解散,全员N+?

鸭鸭今天上网冲浪的时候刷到,联想包括上海ISG在内的多个部门启动优化工作。

年底了,真的是到了各种“广进”的时候。

据说大会 15 分钟,不仅迟到了 13 分钟,几乎是只放了一段 2 分钟的录音宣布裁员,就结束会议。完全没给员工反应和沟通的机会。

在这里插入图片描述

前几个月就陆陆续续有消息传联想裁员,但没想到,居然裁得这么突然,而且影响范围这么大。据说连孕期女职工都在裁员范围内。

网传赔偿金有 N + 2 和 N +(3 - 6 )两个版本,不过也有看到吐槽“赔偿不像美式的”,不知道最终赔偿会是多少。

image-20251202193611336

另外也有一些认证信息为联想员工的爆料称,这次裁员不仅涉及上海,中国区软件、固件和 OS 全部裁撤,涉及北京、上海、天津和深圳多个城市。

image-20251203104319433

当然也有人觉得,“钱到位就行”。

image-20251202194755363

不过目前这个就业形势下,大礼包再到位,对于很多同学来说,也很难接受。更何况临近年底,此时离职,年终奖怎么办?

不知道大家怎么看?

……

今天分享一篇杭州袋鼠云java一面面经

在这里插入图片描述

篇幅有限,完整答案可以进入面试鸭 - 程序员求职面试刷题神器,高频编程题目免费刷进行查阅。

在 Java 中,Hashmap 的工作原理是什么?

HashMap 说白了,底层就是一个数组,然后结合了链表红黑树来解决冲突。

它的工作原理其实很简单,主要说这 3 点:

1)怎么存(寻址)

当你存一个 Key-Value 时,它会先算 Key 的 hashCode,然后通过一个算法(table.length-1) & hash)算出这个 Key 应该放在数组的哪个下标位置。

2)冲突了怎么办(哈希冲突)

如果两个不同的 Key 算出来的下标一样,这就叫哈希冲突。

HashMap 的解决办法是:

  • 链表:先把它们串在一起,形成一个链表(Java 7 及以前一直是这样)。
  • 红黑树:Java 8 做了优化,如果同一个下标下的链表太长了(超过 8 个),查起来太慢,就会把它转成红黑树。这样查找速度就从“挨个问(O(n))”变成了“二分查找(O(logn))”级别的速度,快很多。

3)扩容机制

数组长度是有限的,存的数据多了肯定挤。HashMap 有一个负载因子(默认 0.75),意思是当数组用了 75% 的时候,它就会自动扩容

扩容就是把数组大小翻倍,然后把所有数据重新算一遍位置(Rehash),放到新数组里。注意:这个操作挺耗性能的,所以初始化时最好直接给个大概容量,少扩容。

总结一下就是:HashMap 底层是数组加链表,Java 8 引入了红黑树优化。存取时通过哈希算法定位下标,遇到冲突就用链表或红黑树解决。为了保证性能,达到阈值会扩容。

注意:它是非线程安全的。如果在多线程环境下用,可能会出问题(比如数据覆盖或者死循环),这时候应该用 ConcurrentHashMap

为什么 HashMap 和 ConcurrentHashMap 的 key 可以或不可以设置为 null?

HashMap 是允许 key 和 value 为 null 的。但不同实现类对 null的支持存在差异。

Java 的 ConcurrentHashMap 不支持 key 或 value 为 null。

这是为了避免混淆和潜在的并发问题

ConcurrentHashMap 是为并发环境设计的,在并发访问时,如果允许 keyvaluenull,可能导致不可预知的行为和错误。例如,在使用 get(key) 时,如果返回值为 null,无法区分是 key 不存在,还是 value 实际上是 null。因此,为了避免这种歧义,ConcurrentHashMap 不允许 null 值。

为了简化实现

如果 keyvalue 允许为 null,会给诸如 putgetcontainsKey 等操作带来复杂性。例如,get 操作可能会频繁返回 null,需要额外的逻辑去区分是否是因为 key 不存在,还是 valuenull

如果允许 null,在并发修改或删除操作时,也可能导致多线程下不一致的状态,增加调试和维护的难度。

更多

💻 编程学习交流:编程导航
📃 简历快速制作:老鱼简历
✏️ 面试刷题神器:面试鸭
📖 AI 学习指南:AI 知识库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值