还愿牛客网!附腾讯、拼多多、滴滴面经

在牛客网许愿buff的加成下,本人(211计算机硕士,后台开发岗位),有幸拿到了腾讯、拼多多、滴滴出行、vivo的offer。
特此牛客还愿。

拼多多(2轮技术+HR)

整体感觉比较难。技术挖掘的很深入。
  • 正则表达式,考察十分基础的内容
  • HTTPS原理,这一点很多公司都考过。属于重点基础知识
  • public class Test {
    
        private String name = "小明";
    
        public static void main(String[] args) {
            Test test = new Test();
            test.print();
        }
    
        public void print(){
            String name = "小红";
            System.out.println(name);
        }
    }
    代码输出结果是什么?从JVM的角度,进行解释。
    仅供参考的答案(不一定完全正确):输出【小红】。变量优先从局部变量中寻找,所以打印方法中的name变量。
  • 聊一聊Java的多态。

    本人建议分为编译期多态和运行期多态阐述,并且从JVM角度,深入解释原理。


  • HashMap的数据结构
    考察HashMap几乎是每个公司都会涉及到的。回答时建议多说一点,把知道的内容全部讲出来,主动表现自己的知识面。我给出我自己的思路,仅供参考:
    1.HashMap是一种非线程安全的集合类。利用空间换时间的思想+哈希来实现。
    2.本质是数组+链表的结构。强烈建议在纸上面画出来。
    3.put的大致过程。涉及到resize操作
    4.新版JDK中,链表长度到8,转为红黑树
    5.线程不安全情况举例。多线程,同时扩容,形成循环链表,导致死循环。
    6.这里说一个非常细节的问题,HashMap内部是如何判断一个链表上两个元素是否相等?
    如果这里直接说是通过equals来判断,那么就可能上当了。这里附上JDK源码:
    if (p.hash == hash &&
        ((k = p.key) == key || (key != null && key.equals(k))))
    源码不是单纯的使用equals作为判断依据。因为equals的实现往往稍微复杂耗时一点(相对于用 == 比较hashcode和key而言),所以源码的实现可以提高比较效率。
    优先比较hash值,因为两个对象的hashcode相等,则equals必须返回true。
    其次再用==比较对象的地址,是否相等。
    最后才使用equals进行判断。
    本人理解了这里的源码为什么这么写之后,更深刻的理解到,JDK的源码是多么的注重细节和实现效率,考虑的真的非常细致。赞~
    HashMap可以讲很久,面试中根据面试官的反应,点到为止。讲出自己的知识深度即可。
    编程题:
        修改HashMap中的put函数,要求保留原有的特性,并且使得底层的每个链表是有序的(value升序)。

滴滴(3轮技术)

滴滴的面试挺有趣的,很多情景题。
  • 操作系统。解释一下 用户态,内核态。一次文件读取中,哪些操作对应了什么状态。
  • 一个手机内存很小,需要设计一份电话黑名单功能。用什么数据结构,和思路。
    答案是:两次HashMap。参考布隆过滤器的实现思路。方案优点在于,占用空间很小,效率比较高。
  • 两个文件,找到其中的交集。谈一谈自己的策略。【抱歉,这一题,我不会。】
  • 设计一个流水号生成器。谈谈思路。
    参考FaceBook的雪花算法。
  • 算法题:动态规划。二维迷宫,每次可以向右或者向下走一步。问:左上角走到右下角一共几种走法。
    比较简单的动态规划。思路就是,每个格子的方法数=上面相邻格子方案数+左边相邻格子方案数。注意边界情况和初始化,即可。

腾讯(3轮技术+HR)

腾讯也很有自己的特点。问了许多智力题,很看重个人的逻辑能力。
  • 了解哪些开源框架,会从你的回答中,进一步考察一下框架的原理。
  • 学习遇到的问题,问的比较深入。
  • socket的select模型和epoll模型。
  • 智力题1:1到1000中,多少个数字包含8。例如:118,888,583其中某一位包含了8.
  • 智力题2:64匹马,8个赛道。最少经过多少次比赛,可以得出前4匹最快的马。
  • 编程题:


还有其他公司的面试,我就不一一赘述了(其实我懒,哈哈哈。)大同小异。以上我分别列举了3个有代表性的,仅供参考。其余的都是比较常规的基础知识考察,就不重复啦。

秋招准备和面试建议

算法题推荐《剑指offer》。
  1. 大家一定要用手在IDE上敲一下,不要觉得自己弄懂了思路,看懂了源码,就不写了。一定要亲手独立敲一遍。最好先用自己的思路敲一遍,再看答案。如果你没有思路,你就设想,这是正在面试,你该如何用另外的方法写出来。即使是暴力法,也要比写不出来要好。亲自敲一遍,才能知道自己敲代码的速度还是很慢,才知道自己调用函数时忘记函数名有多尴尬,才知道自己忘记在最开始写参数校验了。。。。。。务必要,亲自敲一下。
  2. 关于知识点,网上有很多知识点总结,大家自行找吧,主要是要总结,自己整理一份文档,让自己复习看的方便。
  3. 多和身边的同学交流,一方面消息流通,不要错过了公司的投递。一方面,多交流知识的理解,互相提升
  4. 和面试官交流,最好画出自己的思路。用画图的方式表述思路,更清晰。优秀的交流能力,是面试评价的一项;
  5. 对于代码题,不要着急写。先想思路,然后交流。注意,一定要主动交流自己的思路,最好还能分析思路好在哪里,复杂度是多少。面试官同意后,再开始写代码。给面试官留下好印象,有几次,我说出了自己的思路后,面试官直接就表示可以不用写了,可能是觉得我太厉害了,相信我没问题了吧。哈哈哈哈,请允许我自恋一下。


最后,请大家放平心态。面试中,自己最多能控制80%。还有其他的不可抗力因素,比如:HC已经没了,面试官心情不好,过于苛刻的面试官....比如我调整过一次面试时间,然后就没有后续了。。。。没有了。。。。没了。。。。卒
再啰嗦一下哈,大家不要放弃任何一个机会。不要觉得自己水平有限,肯定通过不了某某公司的面试的。最后直接放弃了面试,或者就不去投递简历。我自己秋招也从来没有想过最后能拿到现在的offer。不去试一试,你怎么会知道结果呢。勇敢一点,又不会死。梦想还是要有,万一成了呢?

现在是2019年11月4日,晚上八点。祝已经拿到offer的同学,顺利签约;祝还在一线奋斗的小伙伴,OC快来。
希望这份经验,可以帮到大家一点点吧。
还愿结束,拜拜啦~








#腾讯##拼多多##滴滴##面经##校招#
全部评论
差点忘了,感谢一路陪伴我的小伙伴和我的女朋友,以及滴滴的那个美丽可爱心地善良的HR。因为你们,秋招变得温馨了起来。
1 回复
分享
发布于 2019-11-04 20:24
两个文件,找到其中的交集。 哈哈哈哈哈 感觉滴滴特别喜欢这道题
1 回复
分享
发布于 2019-11-05 23:56
百信银行
校招火热招聘中
官网直投
楼主面试的是什么岗位啊
点赞 回复
分享
发布于 2019-11-06 11:20

相关推荐

6 60 评论
分享
牛客网
牛客企业服务