阿里合伙人爹味发言,惊掉了我的下巴

文摘   2024-12-08 11:39   浙江  

大家好,我是鸭鸭。

最近,阿里大文娱的高管樊路远在灵犀互娱的内部演讲惊掉了我的下巴。

不知怎么的,樊路远在讲座里一口气提到“感恩阿里”,甚至把阿里形容成了“救世主”——这波“爹味”发言堪比杨子。

樊路远在演讲中提到,灵犀互娱是从网易出来的,创业失败后“像三国里投奔袁绍一样”,被阿里收购了。听得我一愣:这啥意思?灵犀是“被收养”了?按他说法,要不是阿里收购,灵犀“就倒闭了,啥也不是”。

这也太直接了吧,仿佛灵犀所有的成就都得感谢阿里,能做出《三国志战略版》就是阿里去日本买了 ip,找了明星代言,投了很多钱做广告,不然做不出爆款游戏。

这种话听上去很让人不舒服,毕竟,收购意味着商业上的决定,而不是成就的全部。樊路远的“救世主”自信,有点过头了。

并且他还说你们团队以前走火入魔过,现在重新学习阿里价值体系,公司说你不行你就不行。广州以前都是朝廷流放的地方,当年这里都是蛮夷,讲的都是鸟语,听不懂。

这是什么逆天发言??还开地图炮呢??

除此之外他还一直敲打现在的灵犀互娱总裁周柄枢。樊路远说他是个“小屁孩”,说什么周从 P7 升到 M4,要感恩阿里才有今天。

你听听,这话说得多像父亲在教育儿子啊。周柄枢从 P7 到 M4,照理说是他自己努力的结果,怎么就变成了“灰溜溜”加入阿里的“失败者”呢?

我能理解樊路远想传达的“感恩”精神,但这个“教育”方式让人不太舒服,给人一种“你就该感恩,我才是对的”的高高在上的感觉。人家已经是公司的总裁了,凭什么把自己当成父亲,给人家上“人生课”?

由于演讲太过劲爆,事后发酵,12.7日晚樊路远一看势头不对在公司内网进行了道歉,自罚三个月工资。

樊路远演讲后的道歉,也许是为了平息风波,但真心话,这种“道歉”恐怕也不能完全让员工释怀。演讲里充满了“爹味”的管理理念,不是一句道歉就能改变的。

这种过于居高临下的“父子”关系,显然不太能赢得员工的心。你们怎么看?欢迎来评论区聊聊!

......

继续今天的面试题:

Java 中的 IdentityHashMap 是什么?

回答重点

IdentityHashMap 是 Java 中的一个 Map 实现,和普通的 HashMap 不同,它使用 引用相等性(reference equality) 作为键的比较方式。换句话说,它使用 == 来比较键值,而不是 equals() 方法。因此,只有当两个键的引用相同时,才被认为是相同的键。

使用场景

  • 对象身份区分:适用于需要基于对象身份(引用)进行区分的场景,比如需要跟踪对象实例,而不是逻辑上的值相等性。
  • 特殊缓存:有时用于构建缓存或映射结构,确保即使两个对象内容相同,但只要它们是不同的实例,就会被当作不同的键。

扩展知识

主要特性总结

  • 引用相等IdentityHashMap 使用 == 比较键的相等性,而不是通过 equals(),这使得它适合那些需要基于对象身份(引用)的场景。
  • 哈希实现:虽然名字中有 "Hash",但 IdentityHashMap 并不使用对象的 hashCode() 方法,而是依赖 System.identityHashCode(),这是基于对象引用的哈希值。
  • 允许 null 键和 null:类似 HashMapIdentityHashMap 也允许 null 键和 null 值,但它使用的是对 null 的引用比较。
  • 非线程安全:与 HashMap 类似,IdentityHashMap 不是线程安全的,在多线程环境下需要手动同步。

IdentityHashMap 源码分析

首先看它覆盖的 hash 方法:

可以看到,它用了个 System.identityHashCode(x),而不是 x.hashCode()

而这个方法会返回原来默认的 hashCode 实现,不管对象是否重写了 hashCode 方法

默认的实现返回的值是:对象的内存地址转化成整数,是不是有点感觉了?

然后我们再看下它的 get 方法:

可以看到,它判断 key 是否相等并不靠 hash 值和 equals,而是直接用了 == 。

而 == 其实就是地址判断!

只有相同的对象进行 == 才会返回 true。

因此我们得知,IdentityHashMap 的中的 key 只认它自己(对象本身)。

即便你伪造个对象,就算值都相等也没用,put 进去 IdentityHashMap 只会多一个键值对,而不是替换,这就是 Identity 的含义。

比如以下代码,identityHashMap 会存在两个 Yes:

Map<String, String> identityHashMap = new IdentityHashMap<>();
identityHashMap.put(new Yes("1"), "1");
identityHashMap.put(new Yes("1"), "2");

这里眼尖的小伙伴发现代码里,为什么返回值是 tab[i+1]?

这是因为 IdentityHashMap 的存储方式有点不一样,它是将 value 存在 key 的后面。

认识到这就差不多了。它是一个非常特殊和有限用途的映射实现,主要用于需要引用相等性的场景。在一些框架中,代理对象可能需要根据实际对象实例进行映射,而不是逻辑相等的对象,这时候 IdentityHashMap 就派上用场了。

最后

再来推荐下我们的面试刷题网站和小程序:面试鸭!



咱们面试鸭立志成为一款题库全面、持续更新、题解优质的刷题神器,主要目的就是为了彻底解决所有你能想到的八股文学习痛点!


我们精选了近两年的高频面试真题,已经有 9000 多道面试题目啦,由大厂资深面试官手写答案,押题命中率超高!


不仅有传统八股文,场景题、项目题、系统设计题等等应有尽有,还在不断更新中!


现在邀请好友注册并成为会员,还可获得最高 50% 的分佣🧧!详情见面试鸭拉新邀请有赏规则(网页版面试鸭点击头像查看)

网页端网址:www.mianshiya.com


欢迎关注面试鸭,每日获取经典面试题和优质题解,我们下期见~


往期推荐

新项目今晚直播加更,做简历上的亮眼项目!

笑死了,创始人竟然被员工气的退出群聊

35的程序员被辞了可以自己接外包啊?为什么都那么悲观呢?

突发!人人网已停止服务,突然想起我逝去的青春。。。

年薪10万、30万、50万、70万的程序员,在能力上有什么本质差别?

字节向前实习生索赔 800 万,这得花多少年才还的清啊?

面试过了,期望薪资 30k,流水 26k。hr:给你 20k 接受吗?我:???hr:抱歉,您没通过面试


面试鸭
程序员面试刷题神器,海量高频编程八股文,助你通过面试!覆盖Java面试题、后端面试题、前端面试题、Python面试题、软件测试面试题、IT运维面试题、Go面试题、C++面试题、计算机基础面试题、数据库SQL面试题,实习/校招/社招八股文
 最新文章