V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
movq
V2EX  ›  程序员

面试题怎么卷成这样了

  •  
  •   movq · 2023-01-31 23:04:49 +08:00 · 10375 次点击
    这是一个创建于 662 天前的主题,其中的信息可能已经有所发展或是发生改变。

    HashMap 原理详解,看不懂算我输(附面试题)

    我寻思 HashMap 不也就数据结构里面的一个很普通的结构,大家上数据结构课的时候哈希表部分肯定有一样的实现吧,为什么卷这么多面试题?问这么多细节有啥用呢?

    核心的逻辑就是一个数组作为桶,桶里面一个链表,表长了变成红黑树

    这链接里面的长文实在是看不明白为什么这么锱铢必较,估计得有几万字,可以出本书了

    一个简单得不能再简单的数据结构整这么多面试题,是不是每个 Java 程序员得背几十本书才能面试了

    44 条回复    2023-02-02 18:45:21 +08:00
    mrochcnnnnn
        1
    mrochcnnnnn  
       2023-01-31 23:11:13 +08:00
    是不是简单的问题不具备辨识度,主要还是人太多了。?
    humpy
        2
    humpy  
       2023-01-31 23:12:49 +08:00
    哈哈哈,HashMap 算简单的了,ConcurrentHashMap 能问的才多...
    luxinfl
        3
    luxinfl  
       2023-01-31 23:17:29 +08:00
    以前还能记得住,现在懒得看了。
    xhinliang
        4
    xhinliang  
       2023-01-31 23:25:07 +08:00
    让他自己慢慢卷吧,我懒得看
    katsusan
        5
    katsusan  
       2023-02-01 00:02:59 +08:00 via iPhone   ❤️ 9
    快进到 jdk1.7 的 hashmap 源码第 37 行是哪个函数的代码 /🐶
    Leviathann
        6
    Leviathann  
       2023-02-01 01:06:20 +08:00
    其实还比较基础,看了下基本都记得
    那个 load factor 的取值和算法 4th edition 说的完全一致
    容量和书上说的不一样,书里说最好要用质数,实际上用的 2^n - 1 方便算位置

    还有个点一般人不知道,源码注释里有一段关于为什么是 8 的时候转红黑树的泊松分布概率论证

    另外现在看来这代码 C 味太冲了
    dcoder
        7
    dcoder  
       2023-02-01 01:48:11 +08:00
    历朝历代的进入体制内考试, 都是考这种没用的钻牛角尖
    而且不仅中国这样,国外也这样,就是 tech 面试公务员考试...
    hackpro
        8
    hackpro  
       2023-02-01 01:53:55 +08:00 via iPhone
    下次再面:别问问就是麻痹的不会😄
    xiadong1994
        9
    xiadong1994  
       2023-02-01 03:42:24 +08:00
    虽然硅谷做题也是八股,但是比这些扣源码的还是好了五十步。
    silvernoo
        10
    silvernoo  
       2023-02-01 04:29:45 +08:00
    差不多得了,打工人何苦为难打工人
    hello2090
        11
    hello2090  
       2023-02-01 04:48:55 +08:00 via iPhone
    @dcoder 能举个例子吗?哪国 tech 公务员面试是这样的?
    ericgui
        12
    ericgui  
       2023-02-01 05:58:09 +08:00 via Android
    @katsusan 可以,非常好
    chendy
        13
    chendy  
       2023-02-01 08:33:58 +08:00
    题目卷度和工作难度 /岗位待遇匹配就行
    像我这里要求就不高,给钱也不多,面试就问问项目问问基础(都这样了面试了 20+还没找到合适的)
    tedzhou1221
        14
    tedzhou1221  
       2023-02-01 08:50:22 +08:00
    之前面试,mesi 都问,哈哈
    Nazz
        15
    Nazz  
       2023-02-01 08:55:20 +08:00
    u1s1, hashmap 并不算简单, 使用简单不代表实现简单. 堆栈太简单, 红黑树太复杂, 字典树线段树使用频率太低, 还是 hashmap 比较适中.
    chenPiMeiHaoChi
        16
    chenPiMeiHaoChi  
       2023-02-01 09:08:43 +08:00   ❤️ 2
    2018 年我去面试的时候就问这些了,那会有的还会问 1.8 的 hashmap 和 1.6 的有什么区别。
    julyclyde
        17
    julyclyde  
       2023-02-01 09:20:52 +08:00
    @katsusan 你这个“第 37 行”让我想起了修女和神父的故事……
    zqlcrow
        18
    zqlcrow  
       2023-02-01 09:28:58 +08:00   ❤️ 6
    感觉招人和求职,现在就是一种双输状态。

    1 、应聘者太不实诚,用人单位没有精力筛选,只好不断拔高不用花太多精力的“简单筛选”(比如面试题),不然动辄百人应聘,怎么办?


    2 、求职者大家都不实诚,自己实诚只能被淘汰。也得不实诚起来。
    用人单位都用八股文筛选了,求职者怎么办?卷八股文呗。


    3 、卷八股文出身的人上榜之后(入职公司),成了面试官,他必然会继续八股起来。运用这套先进思想。没有多少人会觉得:“我付出并努力,最终让我成功的东西是垃圾”
    fiypig
        19
    fiypig  
       2023-02-01 09:32:44 +08:00
    HashMap 像这种背的都不难,我是比较怕笔试
    Asan
        20
    Asan  
       2023-02-01 09:35:11 +08:00 via Android
    主要是人太多,筛选人的
    BiChengfei
        21
    BiChengfei  
       2023-02-01 09:35:25 +08:00
    不是每个面试官都有真材实料
    Bromine0x23
        22
    Bromine0x23  
       2023-02-01 09:48:18 +08:00
    菜如我只能问出 Map 有哪些实现
    documentzhangx66
        23
    documentzhangx66  
       2023-02-01 09:51:36 +08:00   ❤️ 1
    你觉得这玩意,不就一个很普通的结构,那么你思考一下:

    1.为什么要设计 HashMap ?

    2.它与其他前辈相比,有何优缺点?

    3.它有哪些适用场景?哪些不适用场景?

    4.有没有思考过它的改进?
    fengpan567
        24
    fengpan567  
       2023-02-01 09:53:37 +08:00
    八股文了,每次面试必背
    yhxx
        25
    yhxx  
       2023-02-01 10:12:16 +08:00
    @katsusan 快进到第 37 行为什么这么设计,如果是你来实现,你有什么改进方案吗🐶
    qinxi
        26
    qinxi  
       2023-02-01 10:56:00 +08:00
    @documentzhangx66 #23 不如你先自己回答一下.
    ufan0
        27
    ufan0  
       2023-02-01 11:09:15 +08:00
    @yhxx #25

    回答中.....

    面试者:说的不错,那么你还能找到源码中的同类实现或者说你的改进方案的实现吗?

    如果有的话你能描述下作者当时写这段代码而不进行优化的内心活动吗?🐶
    yeqizhang
        28
    yeqizhang  
       2023-02-01 12:41:00 +08:00 via Android
    @chenPiMeiHaoChi 同 18 年也是遇到了
    yeqizhang
        29
    yeqizhang  
       2023-02-01 12:46:01 +08:00 via Android
    回答有艺术,提问同样有艺术。
    比如有人说 Hashmap 的 key 为什么不能重复?我的天,Hashmap 的设计目标不就是需要不重复吗。直接问个 HashMap 是怎样实现不重复 key 的多好
    lincanbin
        30
    lincanbin  
       2023-02-01 15:41:27 +08:00
    中国人太多了,你不会有的是人会
    8355
        31
    8355  
       2023-02-01 16:06:35 +08:00
    有些公司你从面试就知道你永远进不去
    有时候面试只是完成某些人的 kpi 和划水摸鱼
    换一种思路去理解
    公司真的想招或者说真的想录用你其实是想放低门槛让你进 有些不是太重要是能商量的
    8355
        32
    8355  
       2023-02-01 16:14:06 +08:00
    半年前答完笔试之后没有看我的简历 没有聊任何项目相关问题 全程在跟我聊面试题和我的回答
    面试官最后问我有没有用过 "道扣" 普通话空耳无责任音译
    我似乎没有听说过啥是 "道扣" 我大概反问一下是框架名字还是什么中间件之类 公司再用吗?
    他:发布用的 跑代码 没接触过就算了
    我:您说的是 docker? 容器这个吗?
    "啊对对对 你用过啊?"
    面试中我就知道了 他也不想关注你的项目技术和简历含金量
    只是把他想问的问完 这也是工作内容的一部分 完全就是浪费时间
    BOSS 半年多了还挂在那里 真是脸都不要了
    fkdog
        33
    fkdog  
       2023-02-01 16:34:11 +08:00
    大部分的面试官都很水。。
    问的问题也是网上找老掉牙的那些。

    十年前问 hashtable 和 hashmap
    五年前问 hashmap 实现
    现在问各种分布式环境下的问题解决方案

    如果你能甄别出这类菜鸡面试官,而且你有足够的信心,可以反过来给他提个问题问问他怎么看。
    如果面试官菜的话,很有可能会被你镇住,不会再问这些犄角旮旯的问题。
    xmrvabc2
        34
    xmrvabc2  
       2023-02-01 17:12:05 +08:00 via Android
    好好背吧
    nexuszjq
        35
    nexuszjq  
       2023-02-01 17:31:53 +08:00
    现在某些 Java 八股喜欢问 Spring 框架各种特性及实现原理,非常要命,Spring 源码里无数个命名长到发指且命名相似的类和方法互相调来调去,你说不背吧,面试就只能说“嗯好像有个类,记不清叫啥,调了另一个什么的方法”,哪怕自己知道个大概原理也讲不出来。
    Macolor21
        36
    Macolor21  
       2023-02-01 19:41:54 +08:00
    @yeqizhang #29 你这提问也有问题,是问 hashCode + equals 对象唯一性,还是问解决哈希冲突的办法。。。单看题目分不清。。。
    shore123
        37
    shore123  
       2023-02-01 20:37:52 +08:00
    红黑树怎么玩的,,, 又有多少人知道,,, 完全没必要问那么多八股文,,,
    ChinLiu
        38
    ChinLiu  
       2023-02-01 22:20:41 +08:00
    说是筛选人用的,最后要进去还是得背啊
    ClericPy
        39
    ClericPy  
       2023-02-01 23:40:25 +08:00
    主要是现在速成的太多了, 不问仔细点不容易筛选, 反正我面人就直接看他源码, 然后逮着源码问一会就露馅了.

    要么看简历上的工作经验, 想想自己去做会做成什么样, 然后问对方, 如果对方做的比我还好, 那肯定拉进来帮忙一起清屎山
    Tabjy
        40
    Tabjy  
       2023-02-02 05:30:32 +08:00
    @katsusan 按照 Java 这尿性… 不是 import 就是 license header (
    e7
        41
    e7  
       2023-02-02 09:32:41 +08:00
    @yeqizhang 一般不会问常识,问为什么不能重复的,说明面试官也是背八股的书呆子
    fireyao
        42
    fireyao  
       2023-02-02 10:59:15 +08:00
    好多年前也是这种问题,到 2023 年都还没变吗😳
    GalaxyVIP
        43
    GalaxyVIP  
       2023-02-02 16:08:51 +08:00
    @katsusan 太快了。
    HUAXIA
        44
    HUAXIA  
       2023-02-02 18:45:21 +08:00
    主要是平时的工作几乎都用不到还
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2912 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:22 · PVG 22:22 · LAX 06:22 · JFK 09:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.