乐趣区

关于java:苦修月余斩获bigo腾讯offer面经奉上

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 了。

如果快手一面你来,会不会挂?

退出移动版