2020年曾经靠近序幕了,跳槽的节令又来了,刚好,最近有好几个读者拿到了腾讯、阿里大厂的offer,在我死皮赖脸的诘问之下,他们终于给我走漏出了面试题的细节,这份热乎乎、滚滚烫的面经分享给大家,心愿对大家有所帮忙。
bigo面试
第一位读者通过1个多月的刷题、看书,胜利拿下bigo和腾讯的offer,这位读者之前也是985高材生,然而始终在小公司,之前和我聊了聊,走漏出想去大厂的想法,这不,还是挺简略的嘛,一把就过了,胜利斩获bigo、腾讯offer。
bigo一面
第一面的话,我感觉比拟根底,都是针对Java、SQL根底的一些问题,而后扩大了一下对JVM对应到生产上的应用、调优教训,看是不是真的做过、解决过问题,要有思路。
内存泄露怎么剖析?怎么晓得整条内存泄露的链路?
个别办法,jmap dump出转储文件,而后通过MAT等一些工具来做具体的剖析。
用的什么垃圾收集器?GC一次多久?线上多久一次Full GC?
垃圾收集器比较简单,背背书就能够了,而后GC的频率这个就是依据当初公司的场景举例子阐明。
怎么进行JVM调优?
说了一点JVM调优的参数,应用之类,而后联合线上的一次问题答复了怎么发现问题,最终调整JVM参数解决问题的过程。
我的项目里有用过ConcurrentHashMap吗?ConcurrentHashMap底层构造有理解吗?
这个八股文看书就行了,分段锁到CAS+synchronized扭转,get、put、resize过程。
你晓得JDK7和8之间的区别吗
说了下Stream API应用、lambda表达式,HashMap头插尾插的扭转,ConcurrentHashMap实现形式的变动。
用过Stream吗,讲讲
就依据平时应用说就好了,比较简单。
sql优化的经验
也比较简单,平时用到的一些慢SQL优化的经验说下就行了,然而平时要有总结,不然的话就会东一棒槌西一棒槌。
算法,链表相加
通用答案,用刷题大法。
bigo二面
二面会偏中间件一点,考查了我的项目的细节,会被问的很细,而后其余的问题都是看看书就晓得了,尽管都不难,然而还是要多看书、多总结才行。
深挖我的项目
我的项目肯定要筹备好,每个细节的点,有问题的中央要本人多思考,不然被问到了答复不了就很难堪。
讲讲ES,ES文档数据太多了怎么办?
基本上把ES的所有点都讲了一遍,就差不多OK了,因为我做的搜寻业务,所以这块的问题比拟多。
RocketMQ集群的原理,音讯沉积怎么办,推拉模式优劣?
也是看书就行的,沉积的解决方案能够看我的MQ文章系列。
说下Raft协定?
也就说说次要工作原理,Leader选举、日志复制这些。
分布式ID的设计方案?
很多,雪花算法,国内美团、滴滴、百度开源的记得一两个就能够了,而后找一个说说实现的原理。
比较简单的一个算法题,印象不是很清晰了,然而依稀记得是考并发工具包的设计
bigo三面
三面一上来其实还是问我的项目,扣细节,这一面是技术的终面了,可能是老板面,所以没有很多的技术上的难题,针对的还是集体思维形式,平时解决问题的想法和思路。
Redis集群的个性,分布式锁的设计?
这个个别也没什么好说的,该背书就背书,分布式锁也是陈词滥调的问题了。
问了我的项目架构,我的项目难点
再次被扣细节,平时要了解粗浅。
算法是二分法的一个变形题,也不算难
bigo面试总结
面试难度总体来说个别,都是在网上能看失去的问题,然而必须都要会,比较顺利的拿下offer。
腾讯面试
因为读者曾经先拿了bigo的offer,接下来腾讯的面试也算是更有信念了,至多有一个offer打底。不过腾讯一面问的十分宽泛,发问速度也很快,如果讲的明确的话,立即就开始下一个问题... ...
腾讯一面
HTTP/HTTPS,网络安全问题?
说了说他们的区别,Https通信的机制,证书、密钥保障平安一些货色。
volatile和synchronize的区别?
八股文,背!
JAVA内存模型?
JMM一套规定,工作内存、主内存,原子性、可见性、有序性,happens-before等等都说了。
Redis分布式锁?
这个挺简略的,大家都会的,另外还要说下和zookeeper实现形式的一些区别,理论利用的过程。
Innodb讲讲?
把晓得的都说进去就好了,行锁啊,MVCC,外键,一致性读一些货色。
ZAB讲讲?
就说整个ZAB协定的过程,选举、发现、同步、播送的流程。
怎么分库分表?
这个其实还是须要点教训的,没有对应到数量级的我的项目的话可能还是靠背书了,参考我的分库分表文章。
怎么本人实现IOC?
如果本人看过实现,这个就比较简单。
用过哪些设计模式,讲讲?
举例一些常见的模式,平时怎么应用的说说就行了。
怎么判断一个链表是不是有环?
刷题就好了。
一面的内容十分多,前面Kafka,Redis,Zookeeper,ES,计算机网络都有被问到,有一些答复的不是很好,不过还是过了。
腾讯二面
这一面比上一面还是好一点吧,没有那么多问题,感觉上比一面还略微容易一点,还有一些简略的问题有点回顾不上了,我的项目的问题,我曾经很熟了。
自我介绍?
自我介绍要筹备好,不要太长也不要太短,几句话阐明本人的职业生涯的状况,重点的我的项目,用到的技能点概括进去就行。
深挖我的项目,问了下商品表的设计,我的项目有什么亮点,或者认为有什么缺点,怎么改良,并发有多少等等?
还是我的项目,深挖,没什么好说的了。
ES讲了个遍,包含根底原理和优化?
又从新说了一遍。
分布式ID的生成形式?
还是老问题。
再次聊了下我的项目,还有分布式事务相干常识,保证数据一致性?
也是陈词滥调题,面试必问。两阶段、三阶段提交,TCC计划,还有强一致性、最终一致性等等。
为什么要用框架做分布式,没有行不行?
这种开放性的问题,说本人的思路就行了。举例子阐明比方Dubbo这种框架解决了什么问题,如服务治理、服务编排、降级等。
腾讯总结
腾讯的面试相比bigo更加全面,更多的考查的是中间件的原理和应用,还有就是分布式系统下的一些惯例的解决方案,平时这些知识点都碰到过,然而要多总结。感觉下来,整体难度也是个别。
附赠快手
读者十分优良,临到采访完结之际,还要附送我一轮快手面试,只能勉为其难支出囊中。
数据库连贯不上了,怎么排查?
还是看思路的问题,思考比方网络是否失常,数据库服务是否失常、权限等因素。
双亲委派模型,有什么益处?
说下原理,益处说了下平安、防止反复加载之类。
ThreadLocal讲讲?
看过晓得就能说上来。
一次接口调用,在日志文件里打印”kuaishou ”+耗时,比方“kuaishou 20ms”,"kuaishou 50ms", "kuaishou 100ms",有十万条,用linux的命令怎么查出来耗时最短的十条?
这个不晓得,而后面试官还始终硬要我手写进去... ...
装置了一个软件,怎么在linux找到他的门路?
我说了whereis。
怎么查看jvm里线程状态?
jstack过程ID就能够了。
CountDownLatch和CyclicBarrier有什么区别?
这个看过就晓得了,具体能够看我的文章有写道。
jps -m ,jps -l 用过吗?
-m能够输入主函数的传参,-l能够输入完整包名。
讲一下Spring事务底层是怎么实现的?
这个问题也要看过源码,AOP动静代理实现。
算法题:树的镜像,不能用递归写。
还是那句话,刷题完事儿。
快手总结
快手的问题,嗯... 比拟奇怪,而后没有什么太大问题...一轮游了。
总结
总结下来,也根本都是常考的知识点,晓得的话根本都没有太大的问题,还要有生产中理论解决的教训,思考解决问题的思路,这位读者bigo和腾讯的根本都全副答复上了,就是最初快手的这个fail-fast了。
如果快手一面你来,会不会挂?