时隔差不多半个月。最可怕的淘系架构又来了!
一共一个小时,没有算法,没有基础!
自我介绍
面试官:看你简历上写了你这个项目是现代化社区平台,是哪方面体现这个现代化呢?二十年前的社区已经是这样了!(因为我丢了一个链接给面试官,面试官能看到我的项目)
在大佬面前还是要少吹牛逼!
面试官:代码呢?有吗?
面试官:说一下你这个项目大概的架构
简单提了用到的技术栈,并且也只是一个单体项目,没用户量,没高并发!
面试官:那组件之间怎么关联起来的,你大概说一下
面试官:那你有遇到什么问题吗?
这个点我每次面试基本都会被问到,希望有大佬能说一下应该怎么说,主要是考察哪方面的?
我就简单谈了一下自己怎么解决这个OOM,将得很浅!
事后想了一下,大概是要考察这两点:
1.技术深度,如果遇到了技术问题,考察学习和深入技术问题的深度(这个深度其实是很多方面的,一定要带上自己的理解,而不是单纯的背诵,像我后面解释这个Redis的数据结构的时候,提到了Redis会基于这个阈值对底层数据结构的实现会发生转换,这时候,面试官就问我了:那这个阈值是怎么设置的,你有没做过一些实验来验证过这个阈值,你说一下你对这个阈值的看法。他后面还提了一句:我不要听你背的东西,我要听你思考得出来的东西!)
2.解决问题能力,遇到问题的拆分、如何应对、做了哪些调研、沉淀了什么东西。(关于这个,我之前也被问过关于这个Bitmap为什么占用内存少,是怎么样的一个量级,你给个具体的数据,比如我有一亿个用户这样子!像这种实践性比较强的问题,还是要多了解一下,往深入去了解一下,不是只停留在这个原理上面,还要自己做一些相关的实践,做一个证明!)
接下来是Redis连环炮,这里主要是简历上面的一些内容坑到了自己!最新版的简历也忘了发到面试官手上
为什么要用Redis?为什么用了本地缓存还用Redis?为什么会缓存雪崩?为什么要key会同一时间过期?为什么会缓存跟数据库会有不一致性?为什么这个短暂的不一致性是可以接受的?为什么要用定时任务来定时更新缓存?只要Redis不可以吗?为什么不能直接保证Redis的高可用,而要用MySQL+Redis这种方案呢?(就是来问这个方案的好处)Redis挂了,MySQL也会被压死?你为什么还会选择读两个呢?本地缓存的数据不准,你敢用本地缓存吗?为什么读了Redis又要读DB?你的热帖模块是怎么被除法更新的。访问数是怎么来的?
面试官: 你说说你最熟悉的一门技术吧
感觉这个开放性问题真的挺难说的
我这里就主要提了一下Redis为什么这么快
面试官:你觉得Redis设置的这个阈值(通过这个阈值来转换底层的数据结构)靠谱吗?你怎么看
这里让我最深刻的一句话:我不要听你记忆的东西?我要听你一些实践性的分析!
你看过什么书
我提到了并发和jvm
因为看了这些东西,你觉得那你在实际项目开发过程中有什么需要注意的点吗?
这是一个比较开放性的问题,因为项目中并没有真正向这方面做过调优,所以只说了做过一些Demo
equals和hashcode有什么需要注意的吗
不重写有什么问题吗?一定要重写吗?
如果不重写哈希冲突的概率会增大吗
最后说说自己的近况:最近的焦虑感越来越大了,一方面是因为自己很想逃离现在的环境,另一方面是身边越来越多朋友拿到(我觉得很满意的offer了),自己到底何去何从,有点失去方向了!
最后,希望自己不要再为自己的学历而找借口了!还记得刚刚面试官说了:为什么我今天会问一些很开放性的问题,而没有问你一些记忆性的东西!因为只有自己沉淀下来,总结下来的东西才是自己的,你靠单纯的背诵知识点,你的路走得并不远!
阿里之路暂时告一段路了--感谢阿里给的机会
全部评论
(9) 回帖