阿里,大概半小时。(投的是 Java 研发,一面挂)
自我介绍后,面试官问了我擅长 C++ 却报 Java 岗位的原因。
首先问了数据结构,数组与链表的区别。我说了增删改查的操作上的区别。面试官提示我考虑存储方面,于是我说了下,数组需要连续内存,链表的内存可以是离散的,但是每个链表结点都需要一个指向下一个结点的指针。
问了数据库,我不会,只聊了聊 join 操作。
问了网络,问我会不会 TCP/IP 协议,HTTP 协议等,我说不会。
问了设计模式,我简单说了一下单例和包装。
关于 Java,因为我不了解 Java 类库、JVM、Java 框架等等知识,所以问得很浅。 问了我什么情况下使用关键字 final 的问题,try-catch-finally 块中 finally 在什么情况下不被访问,equal 与 == 的区别,线程与进程的区别,线程哪些数据是独立的哪些是共享的,等等。
问了我贪吃蛇是如何用 Java 实现的,包括思路以及具体的细节。大体思路和流程是清楚的,但具体到使用了 Java 的什么类型和什么接口等细节,我忘记了。
问我有没有了解最近的新技术,我说了下 Python 3.5 版发布,更新了 wait 和 signal 操作。聊了一下对云计算的理解和阿里的异地多活部署。面试官问我云计算的具体概念,我没答出来。只怕给他留下了班门弄斧的感觉。
最后是我提问面试官。我问了下他的岗位职责、职涯规划,以及他的工作感受。
面试感受:
1.投的是 Java 研发,但是自己对 Java 并不够熟悉。所以面试时问题很大,并没有把自己擅长的东西发挥出来。师兄说:岗位选择,不要随意的报,尽可能去看它的要求,看看自己最符合哪项,还是不要因为它可能容易进,就选择它。
2.面试前有做过准备,但明显感觉到功课还是准备不足的。技术面,不甚了解时千万不要夸夸其谈。