写在前面
概括一下我二面腾讯的整个过程,那可叫一个起落落落起落落落落落.....起
5月份时,就投了腾讯的后台开发,但迟迟没有收到面试邀请,终于在5月9号晚收到了腾讯的电话,遗憾的是那时在洗澡,并没有接到,错过这次机会之后就再也没收到电话了。。。
终于,在5月14号的当晚7点,有幸收到腾讯的面试邀请了(估计这个时候有人拒offer了,就捞了我一手2333),本人毕业于北理工,资历各方面我觉得自己还是不错的,但是面对腾讯的面试官,面试过后我停止我这种傲慢的想法,留下了悔恨的泪水,先说说我的面试情况吧。
一面大概用了一个小时,问的全是项目问题还有MySQL优化,索引。
Q:自我介绍一下?
Q:项目大概是什么时候做的?
Q:项目中做的比较好的地方和做的不是很好的地方?
Q:如何保证消息不会丢失?
Q:如何保证事务的一致性?能具体说说原理吗?
Q:在引入XX组件之前,你是怎么解决这个问题的?
Q:为什么选用这个组件呢?用XX不行吗?
Q:表模型?
Q:sql是怎么优化的?
Q:你认为什么时候建立索引?
Q:MySQL中连表的方式有哪几种?特点是什么?
Q:索引会在什么时候失效?
Q:说说sql语句从输入到执行的过程?
二面的时候是下午,不知道是不是中午吃饭吃坏了东西,一直肚子疼的要命(导致下午的面试状态不是特别好)给面试官留下不好的印象。
Q:有处理多线程、并发的经验吗?
Q:讲一讲线程池?该项目是如何使用的?
Q:Java 垃圾回收的过程
Q:你有遇到过一些内存溢出的问题吗
Q:你的项目是出于什么场景、出发点诞生的?
Q:你项目的库存是怎么扣的?如何处理多人抢一个XX?
Q:假设Redis的一个key对应的list数据非常多?你会怎么解决?(重复问,问到不会为止)
Q:除了缓存和限流还有别的方式吗?
Q:读写分离会有哪些问题?
Q:场景题:请求数远超于系统的QPS该怎么办?
Q:你怎么保证下单的用户就一定是XX的?
Q:如果给你一个淘宝一样的应用,你会怎么进行系统拆分?有哪些维度?
A:.菜的原罪,这是我逃避不了的。
B:过于紧张了,不少问题一开始都get不到面试官真正想问的,导致绕了个圈。
C:在面试官提问项目前,没有先介绍清楚整个项目是什么样的,导致面试官提出一些你觉得匪夷所思的问题,事后才察觉到这点已经晚了。
于是我不停在网上找复习资料,面试资料。整日整夜不是埋在书里,就是在刷题(幸运女神还是会眷顾努力奔跑的少年),经过我每日每夜复习27天后,三面阿里最终斩获了飞猪事业部P6岗offer!下面是我27天吃透的资料,有需要面试的朋友可以参考参考(整理出来的Java核心知识共计1283页):
因为近日准备面试或者准备跳槽升职,而需要Java复习资料的朋友可以→点击获取←(免费整理的Java核心知识PDF和面试宝典)
Q:自我介绍
Q:数据库索引的作用是什么
Q:为什么使用B+树存储
Q:数据库范式有些什么,为什么要有这三大范式
Q:mysql数据库底层存储
Q:数据库类型,关系型数据库还有什么?
Q:讲讲jvm,内存泄漏怎么理解的
Q:垃圾回收机制,垃圾回收算法讲解一下,怎么判断是老年代,触发垃圾回收的时机在什么时候
Q:软引用,强引用,虚引用,弱引用那四大引用各自讲解一下
Q:给一个正整数,判断是否是2的n次幂,他说用最快的方式不要递归?
Q:http属于哪一层,传输层协议有什么,http用的哪一种,网关属于哪一层,路由器属于哪一层?确定吗?交换机属于哪一层
Q:tcp和udp的本质区别是什么?
Q:使用https就能保证数据安全吗?
Q:http发起请求的时候,get,post别的还有些啥
Q:实际项目中运用过多线程吗?用来干什么?
Q:多线程安全问题怎么解决?实际项目中怎么解决的,场景和解决方式
Q:死锁怎么产生的
Q:有很多纸盒子,每个纸盒里里面套着纸盒子,其中有一个有硬币,怎么把硬币找出来,写算法
Q:树的遍历方法有什么,写一个二叉树前序遍历算法
Q:比较mysql和mongodb的优劣
Q:mysql用join来做连接,mongodb怎么做的
Q:信息变更了,name变了怎么处理这些冗余字段
Q:mongodb里面的aggravate使用过吗,举一个例子,有什么用
Q:pipeline运行机制是什么,假如你来做mongdb执行引擎,自己设计一个方式来设计这个pipeline
Q:运行在docker里面的文件系统,docker怎么实现文件系统机制?
Q:寻找最近的父节点,给了两个例子,差不多leetcode中等难度
Q:什么是非阻塞的 IO 多路复用?为什么就快呢?
Q:如何进行强缓存?
Q:构建 DOM 树和样式计算有顺序吗,还是同时进行的?
其实在三面的时候我还是有点小紧张,感觉自己发挥的不是特别好,有一些能够流利回答出来的问题但是由于紧张,回答出来都是吱吱唔唔的。
通过面试其实也是一个很好的学习过程,一是在准备面试的过程中可以去不断地完善自己涉及不多的方面,而是在面试的过程中可以很明显的感受到自己到底哪一方面还不够好,这样在之后的学习中就会更加的有目的性。在面试的过程中也可以积累一些面试经验和技巧,面试是双向选择的过程,这个过程中破冰也是很重要的,如果说你让面试官一直板着脸对着你,你自己也会很紧张。所以说面试的技巧是很重要的,面试也是自己学习过程中重要的一环,因为面试的过程中总是可以意外的收获到很多。
因为近日准备面试或者准备跳槽升职,而需要Java复习资料的朋友可以→点击获取←(免费整理的Java核心知识PDF和面试宝典)