一面
电话面试,面了一个半小时面试官感觉年纪挺大的,而且又是Java的技术栈,能被捞属实感恩,阿里系里面对蚂蚁最有好感了。
- 先聊一下科研课题是什么,论文写了什么
- 了解过哪些排序算法,分别介绍一下时间和空间复杂度
- 快排的实现介绍一下
- 归并介绍一下
- 查找算法有哪些?我说了二分,面试官说可以从数据结构的角度说一下有哪些查找的方法(我说哈希,B+树什么的)
- 介绍一下C++里面怎么应用面向对象编程(从封装继承多态进行解释)
- C++多态怎么使用?讲一下原理和使用方法
- 面试官说在设计一个类的时候要包含哪些内容(他说主要考虑成员变量和成员函数就ok了。。。)
- 讲一下线程调度算法有哪些(先来先服务,最短先服务,时间片轮转,优先级队列)
- 面试官说不是还有个最长等待时间策略嘛?(我都不知道这个调度算法。。。)
- 说一下他们调度的优点和缺点
- 缺页算法讲一讲
- 缺页之后的流程是什么?
- 页和段的原理是什么?
- 线程的一个生命周期是有哪些状态呢?
- 死锁介绍一下是什么(四个必要条件)
- 有什么策略去解决一下
- 聊实习,实习做的这个网站的作用是什么?
- 怎么分工?方案谁设计的。讲一下你们设计的方案是怎么样的
- 实习里面收获了什么?
- 讲一下你这个网站的方案是什么
- 讲一下C++怎么实现IOC控制反转?(看来面试官对这些很感兴趣,被面试官问了好多次C++实现反射和IOC了)
我开头还以为电话面试不用算法题呢,没想到给我邮箱发了个测评网站,在里面白板写算法题。
第一题是多叉树的dfs遍历,自己手写建树+遍历算法
第二题是SQL语句,查询每一门课程的合格率,(sum case when if xxx 1 else 0)记得加别名来让sql语句更加直观比如(合格率,对应的课程名称)
第三题也是sql题,查询每个同学的合格率(合格指的是满足4个分数条件之一的)先分别查询四个语句,然后union在一起
之前从来没写过CRUD,之前都是用ORM框架,所以写了一大坨code shit。。。尤其是第三题SQL语句足足有八九行。面试官高情商的说,我们一般不这样写hhh