面试经历(一)

面试经历(一)

没想到我也要写面经分享自己的找实习之旅了,这篇面试经验中不会出现具体的公司名字,只会讲述过程、问题以及所见所闻所想,但是质量还是会尽量保证的,希望不会让你们后悔。
其次,文章里面会夹杂我认为可以有技巧的地方,以* tip标出,如果看官想快速浏览的话,不妨看tip.
面试过程并没有特别记录,全是回忆,所以可能忘了一些题目,或者个人情绪化表述,见谅。
update:去掉了tip,感觉太主观。

面试准备

首先说下面试准备吧,这里有一些会牵连到下面的问题。
我是找研发、开发的后台技术岗位,作为一个搞技术,简历样式还是要有点Geek风的,有用github给自己做一个精美的线上简历的,也有用优美的方式写纸质简历的。
这里我选择了使用markdown语法写简历,然后通过编辑器的插件转化成PDF格式,修改一下高宽、行距,markdown的样式还是很好看的(当然,我怀疑不了解markdown的人看这样的简历会觉得简单)。

其次,关于博客、项目经历、github个人主页,都可以放到简历里面去,简历是一面之词,面试官还是要从简历里抽点来询问我们,看我们真正的水平的。但是如果我们将以前的积累也放到简历里去,那么面试官就可以从不同的角度了解我们,我认为放博客和github是一个好选择。

但是这里我有一个失误:打印纸质简历的时候并没有将简历中插入的各种超链接以一种更友好的方式展示出来,谁没事一个一个字母对着简历输网站地址呀是不。后来我回过神来,把网址转成二维码和简历放到了一起,这样链接被访问的可能性更高一些(然则,以我的经历,我并没有看到面试官扫)

第一家公司

这家我投简历时间早,通过内推渠道投递的简历,完善了官网上面的各种信息之后,然后进入了较长时间的等待(实际长度7天)。
这个过程中,我还以为我简历真的太简陋了(第一家,不知道markdown风格的简历效果如何,后来证明,并没有优,但是也没有劣),不想,第7天接到了电话,时间晚上8点左右,我进入了面试的流程。

一面

面试,都要自我介绍的,然而我第一次,没经历过有点懵,有点磕绊说完了(后来我的自我介绍基本都和这次的一样),之后进入正题。

  1. 面试官首先问了我一道计算机组成原理的题目:一个程序,运行在地址总线32位的电脑上,最多能申请多大内存?

    我首先想到是2^32,这都能想到是吧,然后我嘴贱说,如果考虑到虚拟内存的话,不止2^32,这里我说错,即便是虚拟内存,程序可以申请超出实际内存大小的空间,但内存的寻址空间也是受限于地址总线的,最大也就是2^32。这没完,面试官问我单位是什么,我竟然说bit,GG,后来面试官还说你算一下,是多大。我竟然回答,太紧张,一下子算不出来,GG。这里说一下,内存能申请最大应当是2^32,这是理论值,不考虑系统的限制,但是考虑了虚拟内存,单位是byte,也就是地址的一位,可以寻内存中一字节的数据,这个一字节并不是固定的,还要和机器的数据总线大小来定(mmp,我现在没看书怎么都能记起来,当初也能这么清楚就好了)

  2. 第二个问题,我简历里提到我还了解JS,面试官问我Node.js了解吗,我说了解一点,然而说着说着就把非阻塞和异步说混了,然后面试官提出一个场景让我选用Node.js还是Java来解决,GG。
    怪我学的不精,这里又被面试官质疑了。

  3. 面试官又问了我JS的原型我了解吗,我这次没有作死,简单说了下原型的作用、原型链,结束。 后来我提出,我面的Java岗,我们谈话方向要不要转一下,不问JS,面试官说好,但是先问问别的,我当时想这估计是要考察面试者的全面能力。

  4. 然后,面试官继续问我C/C++了解多少,然我说一下final和const的区别,我从类、方法、属性上分别比较了一下,然后又补充了const指针的问题,const ** const(忘了说没说对了),感觉这一问算是过了。

  5. 终于,第五问,进入了Java 面试官问HashSet的实现,我回HashSet里封装HashMap,使用Key,value是一样的,然后面试官问到了如果存入一样的对象,会被覆盖还是忽视,我说覆盖(错了),面试官继续:你刚才说内部实现是HashMap,HashMap怎么实现的,到底是不是覆盖?我开始扯,就是没发现面试官是想让我回答,不是覆盖。回去我一查,Set的add方法,有返回值,add一样的数据会返回false,并且忽视掉。

  6. 还问到了TCP三次握手,这个我在以前的博文中还总结过,回答的算比较全面,然后正好问着我会的了,一通说。

至此,一面结束,总结一下,多表现,但是慎重回答,面试官质疑的地方,多数情况是自己菜,对方觉得不对还不能直接告诉你答案憋的。

二面

没错,我竟然有二面!
时间是在第二天上午10点多,这一面主要考察了我大学里的专业课基础,幸而有过复习。罗列一下问题

  1. 面向对象的特点?
    这里我回答的时候,又说多了,除了封装继承多态,正巧我学软件工程有些体会,把软件工程里的一些说法放上去了,对比面向对象和面向过程,说问题域与解答域在面向对象中是重合的,方面思考什么的。
  2. Java为什么一次编写,到处运行?
  3. . 二叉树遍历方式?
  4. 后序遍历
  5. 使用栈还是使用递归?
  6. 线程和进程的区别?
    这一问要着重提一下,我这里说了线程是调度的最小单位,没提到PCB(进程控制块),面试官就这两个问题反问我。我坚持自己,表示线程就是调度的最小单位,PCB说了下,然后说同一个进程内线程调度不用上下文的切换,如切换堆和共享的变量,不同进程间切换还是要切换的,PCB还是要管这些的之类。这里我后来查,但是没查到更多相关的信息,暂定是这样。
  7. 说一下网络协议栈,这里我除了简单说了七层协议栈,面试官还让简单介绍下,结果我把网络层说的太多了,当时学计算机网络学的high,尤其网络层东西多,结果把面试最后的时间耗完在这里

三面

我又经历了第三面。这是在一个星期以后,正正好一个星期。

  • 三面主要问项目经历,我简历上主要写了两个,然后面试官只问了其中一个,并且问的是简单的那一个。其中,问到了数据库的设计、我负责的部分的情况、当时的解决方法现在有没有什么新的认识等,并且还对其中一个问题引申了下,问到了图片防盗链如何做,但是没有回答上来。

  • 后来又问到了DNS解析的过程,我回答了递归和迭代两种,都说了一下,然后比较了一下

  • 再后来,问到了我平时怎么学习,我回答了博客、技术公众号、github、SO等,当然并不是社区达人,SO专为学英语,github就简单用

四面

在之后的一个周日,革命尚未成功,同志仍需努力。
这一次,谈的东西集中于Java研发

  1. 问到了Spring的问题,面试官提出Spring中Bean的生命周期,这里我只说了正常的对象周期+实现Spring接口后拥有的init和destory的额外步骤,没有说完全。

  2. 后来面试官接着问到了如何利用Spring的特性,得到Spring的容器中,存活时间最长的Bean,我想到使用AOP,在对象init方法和destory方法上加切面,输出时间到日志,在日志里找。

  3. 再后来,面试官又问到了关于HashMap是否线程安全,以及如何得到一个线程安全的Map,这里因为看技术博客,回答的比较全,从加锁、使用Collection.sychronized()方法、HashTable、到并发的ConcurrentHashMap都说了下,并且简单说明了下。
  4. 问到了什么是线程池,了解多少?这里我就我知道的说明了一下,可以和启动过多线程出现的问题一起说。
  5. Java如何开启新线程,这里我除了答Thread和Runnable,还答了Callable,顺着,就说了Runnable和Callable的区别。
  6. 问到了FixedThreadPool内部是哪个队列?这个怎么说,我看书了解过,但是一段时间后,记忆模糊,就这模糊的记忆,我说不出确切的名字,我说出思路和分析过程好了,所以我提到了这个队列本身是并发包里的,用于多线程,其次基于链表。
  7. 还问到了三道编程题,一道翻转二叉树,简单;一道问给出1~100共100个数,挑99个放到99个元素的数组中,问如何找出没放进去的数,这里面试官最后给出的答案是求和,然后缺多少,就说明那个数字没放入数组,我回答先排序,然后从头遍历,判断数组索引和数组内容产生“跳跃”的那一个位置,后来,面试官增加难度,问如果是98个元素的数组怎么办?我回答用我之前提到的方法还是可以的,面试官提出了先求和,再求积,列二元一次方程组,可以,这就很数学。当时我想到可能数字会溢出,但是一卡壳,没提出来这个事情,后来想想,求积不太可能,1~100,其中任何98个数字的乘积都大于2^32吧应该会溢出,当然,因BigInt也行。最后一道题是问数据量较大时候怎么处理,题的内容当时一激动,没听进去,想都没想,就是分治,MR,因为没有记住题目,回答的并不好。

至此,结束技术面,开始hr面

HR面

说来,HR面,我等了好久,按理说一个星期是处理的极限了吧?我等了10天,没收到任何通知,以为自己跪了,给内推人发了邮件询问2天,无果,我以为我就这样结束了,没想到在内推人的邮件前,我在第四面后十多天,跑步散心的时候,接到了HR的电话。

HR问的内容很杂,从前几次面试的感受,到谈谈项目,谈谈项目收获,后来聊到了家庭情况,家里是否同意出去实习,实习时间,为什么不读研,有没有女朋友(这个也问了,我还是很尴尬的),实习时间能有几个月,不一而足。

后来问我有什么问题,我又犯了一下二,我直接问现在我的综合评价是啥,没收到正面回答后我问我如何能参与到后面的过程中,只等待结果让我很忐忑,HR姐姐就这个问题开导了我,说提升实力才是硬道理,总有要等的时候,安心等待。

就这样,我漫长的一场面试(4+1)落下了帷幕,接下来等了21天,收到了意向书,结束。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值