2020-11-29

@所有人

就是今晚面经分享的主人公,之前他相继拿下京东和美团技术专家offer,最终选择美团,职级对标阿里p7

1.自我介绍?

大家好,本人参加工作6年多了,坐标北京,普通本科,加入架构班2年多了,之前在一家小的互联网公司工作

去年在石杉老师指导下跳槽,去了阿里某个事业群。由于我自身的原因,想离职,所以找老师聊了聊,老师亲自给我指导跳槽的规划,所以这次主要分享这次面试的一些小的经验和感悟,希望对大家有一丢丢的帮助。

2. 面试了哪些公司?

我面试的职级是技术专家,也就是对标阿里p7,美团t3-1的职级,薪资70,面试情况如下:

美团4个部门  (全部通过)

京东云        (通过)

京东数科      (通过)

快手          (技术三面完事,没有通过)

字节2个部门  (技术三面完事,没有通过)

腾讯          (技术三面完事,没有通过)

贝壳          (通过)

神策数据      (通过)

okcoin        (通过)

跟谁学        (没有通过)

3.面试准备

1.基础知识:数据结构+算法、java集合并发、JVM、网络、锁等。

2.常见中间件:缓存Redis、消息队列Mq、网络Netty、数据库Mysql+Es+Hbase等、框架(Dubbo、Spring cloud、Spring等)

3.项目经验:整体架构图、依赖服务关系、团队人数、项目难点、QPS、你负责哪些、哪些最有挑战、你是怎么解决的、你怎么理解你的业务、以后的规划等等

4.个人规划:离职原因、职业规划、你的优点、你的缺点、你的绩效、你和同事关系、你找下一份工作的方向、你为什么应聘我们公司,你是怎么考虑的、你了解我们的业务吗等等

备注:我准备面试主要是架构班课程 + 儒猿技术专栏 + 石杉老师面试突击(一般公司的一面几乎都能覆盖到) + 其他书籍。算法主要是字符串、数组、链表、树这些问的比较多,刷LeetCode就行。

简历方面,找老师指导,老师会亲自教你怎么改简历,每个人情况不同,需要定制

4面试技巧

1.一般基础面试的时候,问的技术栈比较杂,大概就是上面列举的,但是可能大家对于某些有深入了解过,如果问到你擅长的技术栈,你可以多回答一下,如果不是很擅长,就简单的回答一下,每轮面试的时候时间是有限的,尽量把时间都回答在你擅长的技术栈上。

2.面试的时候,如果有的问题可以画图来讲解,一定要画图来讲解,这样比较容易理解,视频面试也可以共享屏幕画图

3.有的面试官是看你简历,擅长哪里,就会有针对性的问你擅长的技术栈,但是有的面试官是不看简历的,只问他自己感兴趣或者他擅长的技术栈。

如果是这样的面试官,最好在自己回答的时候,引导到你擅长的技术栈去。如果问到你不太确定的问题,千万不要随便瞎编回答,你最好先说这个问题我不太了解,然后讲讲自己的想法和思路。

如果你瞎编回答,面试官可能会认为,如果工作中你有不确定的事情,你自己做决定了,会出问题的。

4.大家放好心态,有的面试感觉挺好的,但是就是没过,有的感觉面的不好的,还过了,可能这就是缘分和运气,所以放好心态

5.关于算法:面试大厂一般都会写2~3道算法题,现场面试就是手写,视频面试大部分是牛客网。有的同学对算法有心理恐惧,其实不用太担心,大部分大厂的社招,算法都不会太难,除了类似字节的公司比较难点,可以每天积累一点,把LeetCode上那些热门高频的算法题刷一遍其实就差不多了

另外假如你在牛客网写算法的时候,你写完之后,可以不提交(万一报错了呢),直接和面试官说你的思路,除非面试官一定让你提交。

我之前面试的时候,有个面试官让写个布隆过滤器,我没有写出来,面试官说那我给你换一个吧。所以大家面试的时候如果感觉没什么思路,你可以主动和面试官说一下,没有准备好这类算法,可以要求换一个。

6.我个人感觉开放性设计之类的题比较难回答,之前有个公司问设计一个通用的限流器,你怎么设计?我就把我的想法说了一下,然后又有公司问了这个问题,我又把我的想法说了一下,就没有过。后来我也反思了,我感觉可能没有达到面试官想要的点上

如果大家遇见这样的面试题,可以先简单的说说想法,然后和面试官沟通了解,最后能理解到面试官想要的是哪个点。就算你说了很多,我感觉如果没有达到面试官想要的点上,效果应该不是太好。

例如你项目的高可用、高并发、降级等怎么做的?你如果回答说我们系统没有这么高的并发或者没有做降级之类的。面试官几乎立刻就会问,如果要做,你会怎么做?所以说这类问题,大家还是根据自己的项目,自己多反问一下自己。

7.HR面试还是要注意一下的,离职原因、个人规划啥的,尽可能说的圆满一点(其实离职无非就是薪资、加班、不开心之类的,但是HR想听的就是假话,这点大家最好也多注意一下)

5.面试过程

1.技术一面:基础知识+中间件+一点项目,这些问的比较多

2.技术二面:中间件+项目+一点职业规划,你的leader

3.技术三面:中间件+项目+一点个人规划,你的部门leader或者其他部门交叉面试

4.HRBP面试:主要就是个人规划问题

5.HR面试:个人规划+薪资等问题

备注:这里我想强调一点就是二面以后的面试,因为一面问的问题都是一些基础知识,有些东西都是固定的,变化不大。

二面以后我感觉最重要的就是之前说的why、how、what和嗅探机制,大家可以看看我去年面上阿里后写的面经(下面链接),面试的时候眼睛要睁大、放光,表示你很在意这次面试,给面试官留下好的印象,你leader决定你的薪资呦。

https://sourl.cn/kgAAiN

此外,项目里的技术+业务要通透,面试官会变了法的问你。如果有些开放题,感觉难的话,你也要思考,然后说说你的想法,说的不好也要说,哪个面试官喜欢轻言放弃的人呢,对不。

6.面试总结:

我面的公司有点多,加上时间一长,有点忘了,我这里列举一下,我记忆比较深或者频率比较高的面试题。一般都会以连环炮的形式发问,如果你能一直回答,面试官往往会一直深挖下去。

1.java hashMap和redis map的rehash有什么区别?

Java hashMap rehash基于高低位链表,当前节点数组下标元素rehash不变或+旧的容量,存在线程安全问题和fail-fast

redis字典中包含两个哈希表和trehashidx,当标识为-1代表未进行rehash,rehash过程是ht[0]表数据迁移到ht[1],整个hash的过程是渐进式rehash分多次执行完成防止因为某个槽key太多停止服务,在rehash的过程中删除,查找,更新等操作会在两个哈希表执行

2.java的线程池你们是怎么用的?原理是什么?怎么设置参数?有哪些状态?用了线程池有哪些问题?你们怎么解决的?Future是干嘛的?

线程池工作原理,老师架构课画图讲过,下面这张图,边画边跟面试官讲

线程池状态:初始状态-->可运行状态-->运行状态-->休眠状态-->终止状态 ; 线程池问题:无界队列OOM(使用有界队列和备忘录),过饱问题:增加消费者或自定义拒绝策略降低消费者速率 ; future:对runnable或callable的执行结果处理


3.Java 的锁怎么实现的?有哪些?HashMap key可以为null,为什么ConcurrentHashMap key 不可以为null ?非公平锁怎么实现的?AQS每个Node里的节点状态是干嘛用的?

锁的实现基于aqs,常用ReentrantLock ReentrantReadWriteLock ; ConcurrentHashMap不能为null原因,无法去判断到底是key不存在还是value为null; 非公平锁基于cas实现 ;节点状态 CANCELLED:已取消调度 SIGNAL:唤醒后继节点 CONDITION:等待其他线程调用condition.signal()从等待队列到同步队列中获取锁 PROPAGATE:共享模式 前继节点不仅会唤醒后续节点

4.Synchronized  volatile 的作用?原理?怎么用?什么时候用?

synchronized原理图

volatile原理图

volatile常用场景优雅停机 注册中心服务实例心跳可见等,建议大家看下老师面试突击第三季并发部分内容,对上面这些关键字均有硬件级别的讲解



5.jvm结构?你们jvm的参数是怎么设置的?gc情况怎么样?怎么调优?我们项目的机器差不多每3天一次fullgc,GC已经不能再调优了,这个问题你有啥好的想法吗?

jvm结构:堆 虚拟机栈 本地虚拟机栈 程序计数器 元空间 ;参数设置新生代3G 1:1:8 老年代:1G ,gc情况大概几分钟到几十分钟一次minor gc 每次大概3-5ms左右,几小时一次full gc 每次不超过1s

jvm调优:策略:1.对象预留在新生代 2.大对象直接进入老年代 3.设置合理的对象年龄阀值; 3天full gc一次不能优化,当时没回答好说了一下升级为zgc,zgc推荐看一下美团技术团队分享文章

https://mp.weixin.qq.com/s/ag5u2EPObx7bZr7hkcrOTg

ps:CMS和G1问的比较多,大家面试准备的时候多看看

6.给你个sql,你说一下怎么创建索引?索引结构?联合索引为什么用要存储主键id,存主键id的内存地址不行吗?索引计划有哪些指标,你关注哪些指标?你了解mysql哪些锁?都是干嘛的?什么操作会有锁?需要注意什么?

根据具体的sql来创建索引,联合索引最左原则(字段不超过5个),索引个数5个以内 ; 索引结构:b+树叶子节点存储数据页 ; 如果存储地址值需要二次寻址 ;执行计划指标:select_type type 可能使用的索引 优化器实际使用索引等,主要关注连接类型type,索引使用情况和extra中内容 ; mysql锁:全局锁 表锁(显示锁和元数据锁MDL) 临界锁(间隙锁+行锁),锁注意事项主要还是死锁学会通过show engine innodb status来分析死锁案例

这里推荐大家看下儒猿技术窝的mysql专栏,里面有很详细的讲解

7.redis你了解哪些?你工作什么场景用?底层数据结构有哪些?分布式锁怎么用?有哪些问题?你们怎么解决的?数据一致性你们怎么做的?分布式事务了解不?你们用过没?你们怎么用的?用了之后有啥问题?你们怎么解决的?redis如何可以动态扩容和缩容?如果你来设计,你怎么设计?

redis 数据结构类型 内存淘汰策略 过期策略 持久化rdb和aof  主从集群(哨兵高可用) 复制和redisCluster这些建议大家看一下《redis设计与实现》 ; 分布式锁:原生set nx ex+lua(get+del)或redisson hash结构支持可重入 或redLock或优化版本加上栅栏验证token ;数据库和缓存一致性推荐大家看一下老师早期出的亿级流量;分布式事务这里就直接引用老师gitee上的文章了

https://gitee.com/shishan100/Java-Interview-Advanced/blob/master/docs/distributed-system/distributed-transaction.md

8.MQ你们用的啥?什么业务场景使用?你是怎么考虑用MQ的?原理你知道多少?MQ有哪些问题需要注意?

这个老师讲的面试题突击第一季的时候讲了mq的连环炮。大家可以看一下。

9.你做过哪些项目?哪些是你主R的项目?对你技术挑战最的项目是哪个?挑战是啥?你是怎么解决的?你项目中哪些做得比较好?还有哪些可以优化?如果你现在负责一个项目,你要怎么推动实施?

这个就要根据个人情况来定,根据自己的项目和经历,把自己做的系统和业务弄透,然后再结合自己的项目多反问一下上面的问题。

10.面试官问,2020年6月18号,晚上18:00点,浏览器输入了jd.com,你把整个过程给我画个图,越详细越好

这个图取决你的薪资,这个是面试官原话

我的理解:这个问题,大家一看可能就是一道网络题,dns啊,加上一些网络包的层层封装,之前面试突击老师也讲过,但是这里有个日期就是6月18号,这个时间有点特殊,可能就会要考虑我们后端的一些东西,比如架构的东西,你就可以说一下,这个首页你要做你怎么做的,是不是用缓存啊,网关怎么走的啊,用什么缓存啊,用不用CDN啊,大家尽可能去发挥自己的架构能力,我就是按照这个思路回答的。

11.要做一个项目,全世界的人聊天app,现在一期只实现发送文字聊天,朋友列表,朋友圈,你给我画一下整个架构图。机器如何部署?

我的理解:聊天大概就是IM,获取朋友圈或者朋友列表,可以用http业务系统的架构来做,这里可能就是IM架构怎么设计,业务系统怎么设计,大概就是画一下这两个系统怎么设计,机器部署的话,因为是全世界,可能需要多机房部署,数据同步之类也要说说。我是按照这个思路回答的。

12.设计一个通用限流器,10、100、1000、10w、1000w的qps可以随意配置,误差率在99%

我的理解:在qps小于一定阈值的时候,可以用全局计数器来作为全局限流,如果qps高于一个阈值,就分配到每个机器上,本地做限流,定期汇报,然后重新分配。我大概就是按照这个思路讲的,限流算法大家也可以学习一下,比如令牌桶、计数器、滑动串口等,也可以参考一下sentinel的设计和架构。

13.设计一个点赞、评论系统,你怎么考虑?

我的理解:如果要求数据实时性比较高的话,可以通过一些flink实时计算来进行统计,如果实时性要求不高,可以本地缓存一下,定期更新,大概就是按照这个思路回答的。

14.现在有一个需求,本来不是你们组负责,但是由于一些其他原因,这个功能要由你们组来负责,你是怎么考虑的?

其实这个问题我感觉不太好回答,当时我是这么回答的,作为一下参考,我说如果这个需求比较急的话,我们可以先做,如果以后有关于这个需求的更新迭代,可以慢慢移植到其他组,自己做业务闭环,好维护。

15.MQ延迟队列你知道多少?你能设计一下吗?你能设计一个支持事务的MQ的功能吗?

这个大家可以参考一下rocketmq的说一下延迟队列是怎么做的。事务的话可以参考一下kafka是怎么设计的。

16.我们组内用一个新的技术组件,但是其他部门没有在使用,如果要推广,你有啥想法?

当时我是这么回答的,作为一下参考,可以把我的新技术组件写个好点的wiki,然后分享一下,看看那个部门需要这个功能,然后一个一个的部门的推。

17.你下一份工作你有什么预期?你对加班的看法?

这个你参考一下你面试的业务和公司,最好说自己的预期和你面试的公司业务和技术匹配度高一些,你面试的是订单组,你说你预期希望做财务系统,这个就不太好了。加班的看法,我感觉最好是说适当加班没有问题,先拿offer再说,拿到offer综合评估加班的情况。

备注:可能大家都能感觉到了,如果问你技术或者项目问题,如果你说不太了解或者说没有做过,那么下面就接着会问,如果是你,你怎么设计怎么解决?大部分都是这个套路,所以大家要多学习基础的原理,项目要搞透。

以上就是我今天的面试分享,最后再次感谢石杉老师,让我两年从一个小型互联网公司跳槽拿到大厂技术专家,同时也感谢儒猿技术窝平台,聚集了一批志同道合爱学习的小伙伴,分享交流技术。大家一起加油,希望每个儒猿群小伙伴都能拿到自己想要的offer

问:源码要怎么阅读

答:用老师的话讲,抓大放小,要先打基础

问:我有一个问题,技术与业务,哪个的提升,对于自己的帮助和职业生涯是比较大的

答:都重要,面试问技术,工作搞业务

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,193评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,306评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,130评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,110评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,118评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,085评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,007评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,844评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,283评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,508评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,395评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,985评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,630评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,797评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,653评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,553评论 2 352

推荐阅读更多精彩内容