阿里 Java研发 一面面经
BrantShi 石纪
四月,一个风和日丽的上午,一位阿里面试官小姐姐给我打了一个电话,约我下午三点进行面试,并温柔地告诉我我简历投成别人的了(我个蠢货把伟峰的简历投上去了:joy:),让我尽快修改一下。 下午三点如期开始面试,面试官非常的温柔,有耐心,且面试内容非常扎(ji)实(chu),让我第一次体会到面试莫大的乐趣,十分感动。
具体内容
- 自我介绍。(湖南大学,计算机系,当过班长,主持队队长,相比课内知识更喜欢自己捣腾一些课外的项目,常和老师一起做项目或去外地打比赛,随后自然而然扯到做过的项目上,大致过了一遍项目)
- 详细讲述印象最深刻的项目/最有收获的项目(常见套路,讲Java聊天室,Socket编程,UDP/TCP等)
- 讲一下TCP的“三次握手,四次挥手”(因为简历上有明确写到这点,导向明确,准备充分)
- 为什么TCP断开连接时要四次挥手?(基础,其实在上个问题我已经明确讲过,但她可能没认真听)
- Java方法的重写和覆盖的区别?(知识盲区,不会)
- Java中接口和抽象类的区别?(基础)
- 用面向对象的思想,设计:不考虑左右转的路口,进行红绿灯管理(符号位,继承Thread类重写run()方法,用队列(FIFO)存储经过路口的车辆)
- 数据结构,实现数组元素去重(基本的二重循环去重,或引入set,利用set中元素不可重复的特性)
- 数据结构,如何判断链表中是否有环?(基础,set判重,存放每个结点的内存指针)
- 了解JVM么?讲一下你对JVM的认识?(基本结构,重点讲准备过的GC回收机制)
- 项目中提到多线程,能简单讲一下线程池么?常用的线程池有哪几种?(基础,但是没准备到,不会)
- 项目中提到数据库,数据库有了解过么?(基础,但没做过,项目中是别人负责的,但做过Linux)
- Linux系统是在项目中用到的?还是其他用途?(u1s1,上课学习计算机原理的时候用过,以及应付面试学习过指令)
-
Linux 一堆文件,查找这些文件中某关键词的出现次数(grep -o “keyword” data.txt wc - ,只知道单个文件查找) - 闲谈开始:对未来规划?是否考虑读研?(开扯,考虑过保研和出国读研但因为疫情(结合时政热点-香港问题,群体免疫,川建国和美国的三十万感染)重新考虑选择,现决定先找工作了解行情再做决定)
- 你的知识储备很不错,是从什么时候开始学计算机的?(高三暑假,并开始讲段子【天赋】)
- 有在github上或其他地方创建或follow过在做的项目么?(丰富的失败经历+宏大的未来规划+讲段子)
面试总结
- 要主动掌握面试时话题的走向,不会就是不会,不要逞强,但要积极把问题往自己会的地方引。
- 面试时放松下来往往效果更佳,抱着送人头水经验的觉悟去面试就不会紧张了(甚至有一丝想笑:laughing:)。
- 在回答问题的过程,如果健谈且幽默则可以适当地中穿插一些段子活跃气氛,并且不时旁征博引把自己的经历尽可能丰富且美好地描述)
- 如果遇到女性面试官,一般面试会从比较基础的问起,且问题早已成了在网上随处可见的体系,面试前务必好好准备,尽可能减少答不上的情况。
面试总耗时一个小时,谢天谢地:sob:,终于碰上一个理想型的面试官了,相谈甚欢,面试体验甚佳。
衷心感谢在我陷入阿里笔试泥潭时帮忙捞我的崔学长,也希望各位同志积极尝试,一起努力,争取尽早拿到offer,去体验一下神仙般的996生活:smirk:。