阿里巴巴高德2019秋招面试 后台开发
找工作
面试时间是8月15号下午,本来以为只是一轮,就没吃饭过去了,结果一下搞到6点钟,也不知道自己面试结果到底怎么样,最后庆幸自己还是过了。面试当天分为三轮,一周后约电话交叉面,然后HR面,最后通知过了,开心万分!
一面
主要是C++基础知识
- 首先自我介绍
- 如何实现多态
- 虚函数的实现原理
- new/delete和malloc/free的区别
- new/malloc分别做了什么
- new/delete一个子类的过程中都发生了什么
- 给一个例子
A* a = new A();B* b = (B*) a;
A是B的父类,问父类这种情况下向下转型会发生什么?自己当时答得不好,应该是强制转成一个子类对象,这个结果未定义。如果用dynamic_cast转换,那么是返回NULL
- 类中默认会哪些缺省函数
- 函数重载的实现原理
- C++跟C的区别?
- 如何在C++中调用C的函数
- STL中set的底层实现是什么,介绍一下
- 手写实现一个string类,包括复制构造和赋值操作
二面
主要问了项目情况,数据库,网络,计算机组成原理的知识
- 介绍项目,项目的难点,主要新在什么地方?
- 着重问了一下博客的项目,有什么特点?为什么这样?
- 线程进程的区别
- 何时用线程?何时用进程?我只说了进程适合分布式,回来又复习了一下
- 如果博客扩展到多用户怎么办?
- 数据库的一二三范式,这个有点丧,没答上来,确实是不记得了,然后我就解释了好久自己有这方面的经验值之类的,理论不太熟
- 设计一个博客的数据库结构?
- 问了TCP、UDP的区别
- TCP三次握手的过程,画出来讲一下,这里我自己又讲了SYN攻击,面试官比较满意
- 问平时编程中遇没遇到过类似SYN攻击的情况,自己坦诚回答考虑的少
三面
面试感觉最好的一次面试。自我介绍之后,就白板写题,写完之后跟面试官交流,然后出一道数学题,被面试官虐到炸裂,但是特别好评的是面试官在我卡壳的时候,一点一点的给我指导,最后发现自己的思路饶了一大圈,对面试官佩服的五体投地。
- 白板写题,一个排序数组,正负数都有,求和最大的连续子序列的起始和终点坐标。这个题自己见过,自己考虑了一下就写了一个解法,面试官表示思路没问题,但是实现可以更简单一点,我按着指导改写了一下,面试官表示没问题
- 出了一个数学题,由浅入深的。问题是,一个长宽为(m,n)的矩阵中,有多少个正方形,自己按照规律推广了一下,算出了结果,面试官接着问,如果是问有多少个矩形呢?包括矩形包括正方形。这时候再按照规律推广自己有点乱了,就没写出来,这个时候面试官帮我理清思路,然后推理出了一个结果。这时候面试官提醒我,组合数的写法怎么写?我才恍然大悟,最后这个问题换个思路,即是在两条边上各找两个点,过这四个互相垂直的线围成的区域即是所求的矩形数量,心服口服
交叉面
一周后交叉面,提前在网上看了看交叉面的内容,又说难得也有说简单的,自己就把之前没答好的地方又看了看。结果还是答的不好,面完心情挺糟的。
- 先问了一下,前面面试中自己有什么亮点没有被问到得嘛?自己有点蒙,就说简历上都问的差不多了,自己又说了个自己认为的亮点,跟面试官解释了一下,面试官不置可否
- 问了我的论文,自己有点紧张,说话语气都透着紧张
- 聊到自己学了go,面试官问协程是什么?和线程的区别?自己说了跟线程类似,具体跟线程的区别我说不清楚,面试官表示不满意。自己也确实没认真考虑协程的问题,回来又恶补了一下
- 问线程进程区别?回答了之后,面试官问了句多久没看书了?我一慌,就说了自己最近看书看的少,找工作之前看了点,最近在实习,就看的很少。面试官无奈地说,你也太老实了
- 又问了网络怎么样?这时候我已经有点蒙了,连“很懂”都不敢说了,就说还可以。就问我TCP、UDP的区别,答了之后又问了四次握手的过程,以及为什么是四次握手,这个地方自己还是很熟的,没什么问题,但是面试官还是没什么反馈
- 最后问了一下数据结构熟吗?我考虑了一下,说熟。结果面试官说,就这样吧,也差不多半小时了?我表示???
- 提问环节,感觉自己回答的很糟糕,所以就问了几个跟自己面试和面试官相关的问题,面试官都表示不能回答我。。。我就更慌了
HR面
交叉面第二天,接到HR的电话,自己聊了半天,最后还不放心的问了一句这是面试吗?感觉自己交叉面面的很糟,没机会了
- 按实际情况聊聊,大概就是个人信息的确认,然后问了一下自己的打算,对户口的要求,目前实习的情况等等,实话实说。
之后,另一个HR来电话表示面试通过了,核对一下个人信息,后面会再聊offer的事情,面试算是告一段落。
总结
没写面经之前,觉得面试内容并不多,写完发现也是洋洋洒洒一系列问答,虽然题目不少但是也都是基础问题,打好基础还是最重要的。