2017实习生面试经历

前言

5个月没发博客了,今天开始正式启航!!!!!

实习生的面试已经告一段落了,回想,这一个多月的面试经历,实在是令我感慨万千,多准备一点再出发,这样感觉会比较好。面试了不少公司了,以时间顺序分别是阿里,美团,招行信用卡中心,腾讯,和京东。以下均为本人经历,不带假话,时间久远,可能不尽详细吧。


阿里巴巴 ,共2面,惭愧


  本身作为一名程序员,写了比较多的java,对阿里巴巴还是挺向往的,没过,对自己的一种打击吧,从现在看来,当时没准备好,打无准备之战,肯定输得很难看。


一面


  • 没让自我介绍,让做项目介绍。
  • 结合项目,问了一些数据库方面的知识,索引的分类;一道很有意思的题目:在mysql中,有100万条记录,怎样快速将数据读到内存中? 提示: limit offset的效率太低了
  • 问了TCP/UDP,其实也没什么,很常规的说下它们的不同。
  • 结合JDK,问了数据结构,如Arraylist里面的实现,扩容的实现;HashMap的实现原理,已经为何会线程不安全;ConcurrentHashMap通过哪些技术保证线程安全,然后问到HashTable和ConcurrentHashMap的关系。

二面


二面是一个很有抱负的面试官,我深深地佩服他,并向他学习。

  • 也没做自我介绍,让我给中间件一个定义,很方很慌,这种”小”事岂是我能回答出来的,说不清楚,真的说不清楚,后来他告诉我”除了,应用层和存储层,其他的内容都可以认为是中间件。”。
  • 一个很难又很简单的问题,在C语言中,hello,world!函数,从执行到输出hello world发生了怎样的过程。回答得非常不好,很紧张啊,应该从文件管理(磁盘调度),进程的创建(等待队列),进程的调度算法,获得时间片后,缺页异常(内存替换算法),c库的装载链接,系统调用,从用户态到内核态的切换(IO属于内核资源),以及像素的显示(不是重点)。
  • 为什么使用B+树作为索引。
  • 问我研究生阶段有没有看过论文,说实话我项目做得多,论文看得少,面试官就说,论文是具体问题的抽象,因为前面回答得不够好,慢慢的,我已经知道我没戏了。
  • 最后面试官开始谈论,阿里中间件对于中国软件行业的意义,我深深地感觉到自己在大局观上,在思想觉悟上,真的没有达到他想要的高度,所以失败也是意料之中吧。

美团,共二面,难过


声明:是实际的经历,并非黑美团。但是真的很让人不爽。

一面,一位女面试官


数据开发部门,本身我投的是后台开发,居然分到了数据开发部门。
问了挺多问题的,但是忘的差不多了。

  • 问了能实习多长时间,他们部门好像要求比较长3-6月,所以我说实话,针对现在即将找工作和毕设的情况。我说3个月,其实能2个月就挺不错的了。
  • 数据库索引什么是唯一性索引,真是尴尬,不知道。唯一性索引,可以为空,但是一旦存在则必须是唯一,主键索引是特殊的唯一性索引。
  • 聚族索引和其他索引的区别。
  • 问了堆排序的实现(这个问题我猜,因为他们是数据部门,所以问堆排序)
  • 同样是问了JDK集合包的一些知识。
  • 讲讲单例,我说了一大堆,面试官很满意,值得一提是,因为存在饿汉和懒汉2种单例的实现方式,那什么情况下使用哪种比较好呢。我的回答是:”当单例类中存在类的静态方法或者静态变量的时候,使用懒汉的实现比较好,因为在懒汉式的话,你可能不需要得到这个单例对象,而只是想使用类的静态方法而已,这样就不需要去生成对象了。
  • 最后,面试官说了:”我们部门主要是数据开发,后台开发有,但是很少,我回头和部门的人商量一下,如果有职位就通知你,如果没有那就没有了”

二面


接到HR的电话,让我去北京面试,既然照着一面的说法,说明有职位了,那就去吧。结果是面了一个多小时,然后让我等一会,过一会来人了说:”今天的面试就到这里了”,我一听,因为我回答得很好啊,后面对方说考虑到我的实习时间,以及部门的情况,不需要后台开发。(这就有点过分了,因为有后台开发的职位,才让我去北京面试的,结果又说没有后台开发了,一下子,美团的映像真的就不好了)

  • 结合项目问了数据库知识,索引。
  • 根据项目,问了在网站,做了哪些安全控制。
  • 给了一道数据库的场景,让我写一段SQL语句,(真的难,在写这之前最有难度的一道题了)。
  • 算法题:1,字符串中有效的括号数,用栈不好,因为有O(n)的空间复杂度,经过提示修改为O(1)的。2 从二维矩阵的左上角走到右下角,每次向下或向右走,问共有多少种方法(DP,编程可解),实际上是一个超简单的组合数学问题。
    3,忘了,反正不难。

招行信用卡中心,总共只有一面


因为做过和银行相关的项目,所以在简历筛选的时候比较有优势,参加了面试。

面试前会抽一道题目,幸运地是抽到了我会的,就是说说垃圾回收机制,判断垃圾对象什么时候被回收。

  • 自我介绍以后就说这个垃圾回收机制了,我从什么是垃圾对象,什么时候回收,回收的根据(Gcroot和 循环引用对比),空间分代等多方面阐述了这个问题。面试官应该比较满意的。
  • 问了单例,单例是不是线程安全的? 问了单例会不会被垃圾回收掉,我想了下,回答说不会被回收,后来回来和大家讨论了下,感觉是会被回收的,因为单例如果没有被引用的话,就有可能被回收,有一种说法叫无用的类,在方法区中。
  • 说下Spring AOP,然后问到把业务逻辑写在切面中可以吗?真是个奇怪的题,我想了一下:”不是不可以,只是不太好”。本来嘛,确实好像没问题啊,但是切面存在的意义不就是逻辑分析,不让代码耦合的太严重。
  • 问了网站做了哪些安全控制。
  • 最后就开始闲聊了,没什么。

腾讯CDG 总共三面


一面


因为我本身写Java比较多,所以面腾讯的难度是比较大的。

  • 自我介绍
  • Linux中进程通信的几种方式,说了管道,消息队列,共享内存,信号,问了我管道的实现,以及是不是全双工的。
  • 在共享内存中,有100万条记录,每个记录1k大小,2个进程要同时对同一条记录,满足写的时候不能读,读的时候不能写,设计这样的实现方式,我当时回答了一个pthread_mutex_lock,线程锁。然后他和我说了一堆我不是很懂的问题,因为linux真的没怎么复习过,最后的时候,我问了他可以怎么去实现,他说文件锁,记录锁,fcntl这个函数,然后我回去看了看,深感自己实力不够。
  • 问了数据库的知识,索引,聚族索引的区别,这方面的知识真是被问太多次了。
  • 出于我写java的考虑,问了我垃圾回收机制,以及提出这样的一个问题:“java有垃圾回收机制,那是否在写代码的时候就高枕无忧了呢”,真是一个比较难的开发性问题,好在可以从java内存溢出的角度去说下这个问题,引申出一些注意事项。
  • 问了C++中,多态是怎么实现的,虚函数表在内存中存放的位置。对于写多了java的我,真的,这个挺难答得好。

侥幸过了。


二面


见到二面面试官,我第一反应就是,怎么这些面试官都这么帅啊,受不了。

  • 简单的自我介绍后,问了我项目上的事情。

  • 因为项目SQL解释器的原因,面试官问了我构建索引的算法有哪些,以及我在项目中做了哪些优化。

  • 构建索引的算法数据结构有哪些,还质疑我说,你们老师在数据库理论里都没说过这方面的知识吗?
  • 项目上有一个BIO的socket,问我为什么不用NIO,说下同步异步IO的区别,腾讯的二面肯定不是好忽悠的,我从数据准备,内核数据复制到用户空间等角度说了这个问题。如果使用NIO实现,在写代码上有何不同。
  • 紧接着就问了我epoll,select。我本身对这个不是很了解的,我就从java的NIO里Selector讲起结合在网上的一些说法,说了下。
  • 让我实现一个算法,基于堆栈的中序遍历,真的是天道酬勤啊,我那天早上才刚认真复习了那个算法,直接贴出来以表敬意。

    List<Integer> inorder(TreeNode root) {
        Stack<TreeNode> stack = new Stack<>();
        TreeNode node = root;
        List<Integer> res= new ArrayList<>();
        while(node != null || stack.size()>0){
            if(node != null){
                stack.push(node);//直接压栈
                node = node.left;
            }else{
                node = stack.pop();//出栈并访问
                res.add(node.val);
                node = node.right;
            }
        }
    
        return res;
    }
    

回来后,感觉自己过的概率是40%,居然过了,还是蛮开心的。

HR面


终于到HR面了,我以为会是HR姐姐,没想到是一位欧巴。

HR面,我觉得面得挺好的,语言表达能力实在是在面试过程中有所提高了。
比较有意思的问题就一个: 成长性的自我介绍。

我的回答是:我目前为止的成长,是一个逆袭的过程。因为我小时候到初中啊,成绩都是一般,然后没有一张奖状(硬要说有,那就真有,3年级我是劳动委员,给了我一个劳动积极分子),其他的什么都没有,高中的时候,成绩突飞猛进,幅度巨大。

在此装了个B,大家勿怪。


京东 总共三面


一面


接到京东的一面,当时我在电影院看《大话西游之大圣娶亲》。和腾讯一面是同一天,不过这个是晚上。
真的体会到了,对于每个人而言,问到的内容都是比较接近的。

  • 问数据库索引,数据库优化。
  • 问Spring里AOP和IOC是如何联系在一起的,提示:PostProcessor。
  • 问HashMap的实现原理。
  • 。。。其他的都不记得了。

二面


过了10天,我都以为挂了呢,没办法,京东就是这么让人琢磨不透啊。
二面我觉得挺有意义的,结合项目问了我异常方面的知识,确实我应该在写项目时多考虑些异常处理。

  • 比如说Socket异常了怎么办,给客户端返回什么。
  • 是否有检测机制,检测双方在线。
  • 数据库插入数据的时候(必须插入的数据)——插入异常了怎么办,需要实现补偿机制。
  • 网站被攻击了怎么办?高并发下,设计的服务结构能否支撑?当服务器无法处理的时候,是怎么样的拒绝策略。
  • 是否用到分布式的集群?因为单机出错是一件很危险的事情。

HR面


HR面的时候,特别有意思,在五一前去往宁夏的火车上面试的,火车进入隧道,信号就断了,而且比较吵,愣是打了3次电话才完成面试的。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值