史上被吊打得最尴尬的阿里一面

阿里一面(35 min)

请问哪里能找到比我被吊打得更惨的选手?

  • 自我介绍一下
    • 自我介绍:....平时我学习也有深入源码去分析,我对 Java 并发编程比较熟悉(这句劝退警告)....
  • 讲讲 hashmap
    • balabala
  • 停,说说为什么链化阈值是 6 ,树化阈值是 8?
    • 经验吧...
  • 经验?(笑)肯定不是,6 和 8 怎么算的?
    • emm...沉默(1 分钟)
  • 链表时间复杂度多少?红黑树时间复杂度多少?
    • O(n) / O(logn)
  • 那到底怎么算的还不会么?
    • emm...沉默(1 分钟)
  • 链表平均时间杂度多少?
    • 还是 O(n) 啊...
  • 不是,平均是 O(n/2),还不会算么?
    • 是啊,那不还是 O(n),那到底要怎么算...?
    • emm....沉默(1 分钟)
  • (笑)你这个学的不行啊,balabala 解释,什么时候红黑树效率高于链表之类的...明白了么?
    • 哦,明白了
  • volatile 知道么?
    • 解释作用、原理、底层汇编...
  • 停,这个工作内存是什么,为什么要复制变量?跟计算机哪一个对应?
    • (这里我纯属作死,很早之前复习忘了),解释错了对应关系,被怼
  • (笑)是这样么?你别说那么一大堆,就说工作内存对应哪个,为什么要复制,问题你得说重点啊
    • emm...沉默 1 分钟
  • (笑)你这样不行啊
    • emm... 沉默 1 分钟
  • 下一个问题吧,线程池了解过么?
  • 讲讲核心参数
    • balabala
  • 那这个 core 和 maximum 要怎么设的?关系是什么?
    • 不就是 maximum 大于或等于 core ...?
  • 那肯定不对啊,这样吧,假如一分钟内要写 1 万个 1M 的文件到磁盘,core 和 maximum 怎么设?
    • emm...沉默 1 分钟
    • 500 和 1000 ?
  • 你这个理由是啥?
    • 随便说说的...因为太多会 OOME
  • (笑)你这样不行啊,怎么是随便设的,线程一点资源哪里会 OOME 啊?(被怼 balabala...)
    • emm...沉默 1 分钟
    • 磁盘 IO 过程也会产生对象,太多也会 OOME 啊
  • (笑)那一点资源怎么可能,再想想怎么设这两个参数?
    • emm...沉默 1 分钟
  • emm... 那不如这样,再给你一道题,提示一下吧,你结合回答一下
    • (神他妈再来一道题提示...)嗯?
  • 我现在要对一个数 0 加到一亿,要怎么设 core 和 maxim?
    • emm...沉默 1 分钟
  • 算了,你知道并发的作用是啥么?
    • 并发工作,更快达到工作目标
  • 那你想一下,如果 CPU 只有四核,那你设 500 core 和 1000 maximum 不都是让更多线程处于线程切换的损耗么?
    • (联系并行,有点理解了)哦,那 core 如果是四核就得设置 4 个
  • 对,那 maximum 怎么设?
    • (感觉怎么设都是一样啊...)
    • emm...沉默 1 分钟
  • 算了,你想想,假设是四核,你 IO 那个场景是不是大部分 CPU 都没怎么用,大部分瓶颈在 IO 上,所以直接设置为 1 万个 maximum 就好对不对?如果是加法操作,CPU 利用率高,是不是四个线程和四个 maximum 足以执行,为了减少上下文切换,明白了没有?
    • 嗯,懂了,明白了...
  • 数据库学过么?
    • 嗯,学过 MySQL 和 SQLServer
  • 那你讲讲 MySQL 的锁
    • 乐观锁、悲观锁、表锁、行锁,balabala
  • 那你讲讲行锁实现原理
    • (WTF ?)
    • emm...沉默 1 分钟
  • (笑)不是,就跟 Java 里面一样,锁,总得锁一个对象啊,行锁锁哪个对象?行锁实现原理了解过么?
    • emm...沉默 1 分钟
    • 不好意思,面试官,我对 MySQL 锁没有理解那么深
  • 好的,我这边对你了解已经够了,今天就先到这里了

总结

总结一下,大概是 2020 届(不说阿里其他的面试)就说一面,应该我是吊打的最惨的那个了

也发现一些问题:

  • 遗忘:先前复习的忘了,还是需要多看看
  • 深度:考虑的时候,的确没有考虑很多,利用,行锁的确没深入底层了解

度小满笔试,选择题写到第二道就打过来,响了好久,想了一下阿里的劝退笔试,估计这是唯一一次机会面阿里了,于是就接吧,度小满直接挂掉

阿里的面试是默认常规的原理套路,你全都懂了。并且你所理解的原理不是阿里定义的原理。常规应付面试的套路对阿里没用的,就算懂 volatile 那一套,汇编代码怎么搞又如何?这只是第一步入门,而真正要做的是要综合计算机所有知识,深入掌握各种原理,学东西不能只看表面,要真正学以致用

的确,学东西 = 广度 + 深度,这波吊打,第二次沉默我就感觉凉凉了,但还要继续被吊打沉默。不过一方面感觉面试官职业素质是在线的,即使是菜鸡,也强忍着面你个 30 分钟,这是个双方都蛋疼的

难受的同时,也刻骨铭心:学以致用,看懂源码没用,要联系真正的使用

#阿里巴巴##秋招##面经##Java工程师#
全部评论
老哥你这是深度优先吊打 我的一面是广度优先吊打 一面面了128分钟面完我脑袋已经不带转的了
33 回复
分享
发布于 2019-09-21 22:28
8树化,是经测试,冲突链表个数符合泊松分布,为8时概率零点几,为6而不是7退化,是为了避免7 8来回变引入不可变开销。线程数其实在考cpu密集型和io密集型。volatile那个对应的每个CPU的***。行锁锁的是索引
18 回复
分享
发布于 2019-09-21 21:18
阅文集团
校招火热招聘中
官网直投
这样的面试很nice,不是一味吊打,而是觉得你太低了打不到后提溜你一下接着吊打,楼主把这些问题搞清楚,出去可以吊打别的公司的面试官了
点赞 回复
分享
发布于 2019-09-21 20:41
    同被吊打,面完一面我以为这是最后一面,怎么这么难??然后我恍然大悟这的确是我阿里最后一面。     现在泛舟阿里备胎池的公海之上,就当帮助面试官完成了它的KPI了。     对不起阿里,是我不自量力了。
点赞 回复
分享
发布于 2019-09-21 21:11
没有hc了,不要想太多
3 回复
分享
发布于 2019-09-21 20:10
这面试挺有意义的,常规的答法其他大家都能扯一扯,而真正的一个知识点你得有好奇心和自己的思考才能把他的真正原理细节都吃透,加油
点赞 回复
分享
发布于 2019-09-21 23:01
为什么看完这个帖子,我的脸红了?
点赞 回复
分享
发布于 2019-09-22 00:04
楼主,应该是你的那句熟悉并发编程让面试官来了兴致…
点赞 回复
分享
发布于 2019-09-22 00:35
阈值是根据泊松分布得出来的,可以看源码注释
点赞 回复
分享
发布于 2019-09-21 19:34
阿里的常规操作。哈哈哈
点赞 回复
分享
发布于 2019-09-21 20:44
老哥辛苦了
点赞 回复
分享
发布于 2019-09-21 22:12
不如选择度小满
1 回复
分享
发布于 2019-09-21 19:07
真的是,有点儿难啊~ 数据库行锁的我也遇到过了,换了一种说法,什么使用innodb什么时候使用表锁?
点赞 回复
分享
发布于 2019-09-21 19:20
的确,阿里对广度和深度要求都挺高。项目也会被问的很细。
点赞 回复
分享
发布于 2019-09-21 19:21
哈哈,这个面的确实是难。阿里这面试就是招大佬的。
1 回复
分享
发布于 2019-09-21 20:03
行锁锁的是唯一索引
点赞 回复
分享
发布于 2019-09-21 20:45
man 你这个和我们一样的阿里吊打常规操作
点赞 回复
分享
发布于 2019-09-21 20:48
精通是互联网的高压线😂
点赞 回复
分享
发布于 2019-09-21 21:08
非技术岗并不懂,但是我居然认真看完了。。。哈哈哈哈,祝楼主找到满意的工作~
1 回复
分享
发布于 2019-09-21 21:14
都9月底了  讲道理我感觉是没hc了。。。
点赞 回复
分享
发布于 2019-09-21 21:30

相关推荐

47 233 评论
分享
牛客网
牛客企业服务