线程、数据库、算法、JVM、分布式、微服务、框架、Spring相关知识
一线互联网P7面试集锦+各种大厂面试集锦
学习笔记以及面试真题解析
腾讯一面
上来给我介绍了一下他们的部门,好像是微信支付,国际端的,然后我自我介绍,然后开始做题,离谱的是我面的Java,他让我做**C++**的题,全是C++的知识点。
做完之后问了点项目有关的东西,sql注入和XSS什么的。
我上一次写C++已经是两年前了,那题做得我莫名其妙,应该是凉凉了
腾讯二面
我都以为凉凉了,没想到过了两天收到了通知进行第二轮面试(人都傻了!)
- 快排的时间复杂度,冒泡时间复杂度,快排是否稳定,快排的过程
- 100w个数,怎么找到前1000个最大的,堆排序,怎么构造,怎么调整,时间复杂度。
- 一个矩阵,从左上角到右下角,每个位置有一个权值。可以上下左右走,到达右下角的路径权值最小怎么走。
- 先说了一下dfs递归实现。面试官说要优化。
- 说了一下用迪杰斯特拉的思路,说可以。
- 四辆小车,每辆车加满油可以走一公里,问怎么能让一辆小车走最远。说了好几种方案,面试官引导我优化了一下,但是还是不满意,最后他说跳过。
- hashmap的实现,hashtable,concurrenthashmap实现。
- MySQL的索引,B 树性质。
- Linux的cpu 100怎么排查,top jstack,日志,gui工具
- 8 Linux大文件怎么查某一行的内容。
- Redis内存数据库的内存指的是共享内存么
- Redis的持久化方式
- 秒杀系统的架构设计
- Linux操作系统了解么,了解一点点,就没问了。
- 对于单例模式,有什么使用场景了,讲了全局id生成器,他问我分布式id生成器怎么实现,说了zk,问我zk了解原理不,讲了zab,然后就没问啦。
- 除了单例模式,知道适配器模式怎么实现么,有什么用
- 回到网络,刚才你说到直播场景,知道直播的架构怎么设计么,要点是什么,说了几个不太对,他说要避免广播风暴,答不会。
- Redis和MySQL有什么区别,用于什么场景。
- 问了一下最近看什么书,什么时候开始写博客的
- 问了还有几轮面试,他说这轮我可以过,有点小惊喜
腾讯三面
- 十亿个数的集合和10w个数的集合,如何求它们的交集。
集合的数字不重复。
我讲了两次循环,两次hash,以及排序或者合并等方式。。都不对。后来面试官说是对小数组做hash,然后遍历大数组即可。我完全想错方向了。
- 十亿和数找到前100个最大的,堆排序,怎么实现,怎么调整。
- TCP和UDP的区别,具体使用场景呢。
- TCP四次挥手讲一下过程,最后一次ack如果客户端没收到怎么办。
- 对于socket编程,accept方法是干什么的,在三次握手中属于第几次,可以猜一下,为什么这么觉得。
腾讯四面
三面过了半个多月,终于安排四面了。我都在中间这段时间又投了几份简历,当时以为死定了。。
- 自我介绍
- 项目,收获
- Linux了解哪些,基础命令和知识。问我proc文件系统了解么,答不了解。
- TCP和UDP的核心区别在哪,讲了滑动窗口保证可靠有序传输,UDP不可靠。TCP需要连接而UDP不需要。
- TCP的四次挥手,time wait状态有什么意义。
- 说完这个他问我有什么想问他的了。
- 我问他为什么隔了这么久才面试,而且之前三面都只是初试,然后他说最近他在休假(wtf?),所以就。。。害我担心了好久。他说接下来等HR面就行了。
HR面
- 自我介绍
- 工作收获
- 离职原因
- 拿到其他offer了吗,会如何选择呢
结语
小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。
我们选择的这个行业就一直要持续的学习,又很吃青春饭。
虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。
送给每一位想学习Java小伙伴,用来提升自己。
本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!
b)收录**