首页 > 小米22届校招安卓开发一面(69min)已挂
头像
我要出去乱说
发布于 2021-09-20 17:59
+ 关注

小米22届校招安卓开发一面(69min)已挂

职位:Android开发工程师(可接受java方向)

本来不太想接这个面试的,因为当时手里已经有百度后端研发和ThoughtWorks软开两个offer了,但约面的面试官语气很诚恳,实在不忍拒绝,就接了。

1、 数组中出现次数超过一半的数字

2、 环形链表 II

3、 螺旋矩阵

面试官话不多说,上来就甩给我三道题,要求半小时做完,结果我做了32分钟,第三题还没调试出来,担心时间不够,就先提交了,边界判定太烦,给我干懵了。

4、了解安卓开发吗?为什么选安卓开发?

因为我之前实习用QT写过桌面级的客户端,感觉客户端开发很有意思,但现在桌面级客户端开发越来越少了,所以想转到移动端。目前我对安卓开发不是很了解,但有兴趣去学。

5、堆与栈的区别?

  • 堆是由程序员分配并释放的,效率比栈要低,但可用空间比栈大,比如mallocnew就是在堆上申请内存空间,使用后若不释放会造成内存泄漏;
  • 栈是由编译器来自动分配释放的,效率高,但栈空间通常较小,比如定义一个局部变量,就是放在在栈空间中的,由于栈空间由编译器控制,所以不存在内存泄漏。

6、构造函数能否重载?

这里我傻了,我说不能重载,其实是可以重载的,最典型的就是带参数重载:

class Box {
public:
    Box();
    Box(int h, int w, int l):height(h), width(w), length(l){}   //构造函数的重载
private:
    int height, width, length;
};

7、如何理解抽象类?

类中含有纯虚函数即为抽象类。抽象类不能实例化,比如动物类下面可以有狮子、老虎、熊猫等等派生类,这些派生类是能够实例化的,但动物本身不能实例化,因为它是一个抽象的概念。

8、指针和引用的区别?

9、预编译过程做了哪些事情?

预编译主要是做了宏定义展开和引入头文件(应该还可以说一个条件编译)的工作。

10、说说归并排序?

11、TCP/IP的协议栈?

其实就是说OSI的七层模型,我从上往下说了一遍。

12、HTTP协议头部的TTL字段代表什么?

代表报文的最大跳数(最长生存时间),主要是为了防止报文段在网络中一直循环的进行传输所设置的,当达到最大跳数后该报文段会被自动丢弃。

13、git你熟悉到什么程度?

我说了常用的pulladdcommitpushmerge操作。

追问:知道cherry-pick吗?

不知道。感觉git真是博大精深,不是特别熟悉的话简历上还是慎写,不然一问就懵。

14、闲聊在学校和实习做了什么(12min)

15、目前还有其他offer吗?

手里现在还有个外企的offer,不过是做软件外包的(其实我觉得这家外企挺好的,但我故意说得不太行的样子,抬一手小米)。

追答:嗯对,外包公司确实你要慎重,因为加班严重,待遇也不是很好,毕竟做的不是自己的东西,巴拉巴拉说了一大堆。

16、能来实习吗?

不能,我现在正在实习,10月底实习完就返校了,不再实习了。

17、你对加班怎么看?

我对996深恶痛绝,这是资本家对我们的压榨,我恨加班(不能说的心里话)。
其实做这一行加班我觉得是挺正常的,自己有心理准备,实习的时候为了尽快完成自己的工作,我也常常加班。

反问:像我这种完全没有安卓开发经验的应届生能胜任这个职位吗?

面试官建议我有时间还是多学习一些相关的知识,话里话外能听出来他不太想招一个完全没有安卓开发经验的应届生。

总结

之前被字节的客户端开发给洗脑了,到处都是客户端0基础,mentor一对一,包教包会的内推广告,我还以为客户端都是低门槛呢,看来也不全是这样。第二天直接给了感谢信,效率挺高的。不出意外的话这可能是我秋招的最后一次面试了,现在已经完全不想刷题背八股文了。等着中秋后谈薪吧。

更多模拟面试

全部评论

(7) 回帖
加载中...
话题 回帖