电话面试初探之阿里
题外话
春节回家弃疗了一个月后,回学校发现就要开始准备暑期实习....惊呆的我赶紧投入到准备工作的进程中。导致简书这段时间完全被弃掉了..看着之前写的零散几篇文章偶尔都有人点赞,还是挺开心的,但是也有些愧疚,说好的周更呢(吐血)。还是赶紧恢复正常写下去吧。这段时间重点可能是准备面试过程中一些知识点。
阿里电面
阿里投的是分布式岗和web服务岗。上周好多小伙伴都接到了阿里电话的面试,唯独我一直没接到。周四那天我都以为简历被挂掉了(明明投了java岗,简历里却写了些PHP的东西,简直作死),可是下午却意外收到杭州电话激动地不行。一开始由于过于激动,再加上是从实验室立马跑到外面接的电话,说话有点上气不接下气,不过面试官还是很和蔼,引导我不要紧张,让我平复下。
面试官先让我讲述下项目经历。我先大概讲了两个ssm框架的项目,然后提到了一个简单的分布式项目。
分布式部分
这时候,面试官让我介绍下什么是分布式。我就解释了下自己的理解,以及CAP理论。面试官接着问Hadoop一致性是怎么做到的。我一脸蒙蔽,发现方向引向了我并不熟悉的分布式..觉得要坏。我跟面试官讲了下hdfs的存储备份机制,以及大概提了下MR出错时保持一致性方案。面试官又问我Hadoop如何管理集群,我就讲了下namenode、datanode以及jobTracker的大概思路,但是当时我忘记jobTracker这个名字了,只是说有这么个东西(汗)。面试官又问节点之间通信确保确定存在,我说记不清了应该是用心跳包机制。并跟面试官说自己对分布式这块基础其实不太扎实,只是做过一个简单项目,希望转移下提问方向。
项目部分
问:redis你都用来干啥了
答:存储多级菜单、用户信息、不常变动信息缓存
问:数据库压力太大怎么办
答:redis、线程池+队列。mysql分布式、hbase分布式巴拉巴拉
问:mysql咋分布式
答:横向分表、纵向分表(按条数、按哈希)
问:hash分表,新增服务器咋办
答:(想了一会没想出来)
问:项目中怎么用的事务
答:SSM框架、AOP、反射 巴拉巴拉..
问:你用过那些java网络协议:
答:Socket(tcp/udp)、http、webservice
问:发送一个http报文经过了那些网络协议:
答:各层协议说了下(掉了可恶的DNS协议..而且一开始没听明白题,面试官提示了下才整明白)
算法:
判定是否是链表环形链(这个比较简单)
常用排序算法(掉了希尔排序)
从文本读取1w单词,找出频率最多的10个次
这个统计出频率后一开始用快排,被说太慢。然后想到快排每次抛弃一半...面试官问我算法复杂度,我说o(nlogn)吧..面试官说:恩,那你再好好想想别的方法吧。(回来时候查了下,这时候复杂度其实已经是o(n)了..哭)。我想了半天,感觉那堆排序建堆也很慢啊,最后说用hash表吧..角标是频率,这样o(n)就可以了。感觉面试官还是不太满意
提问面试官问题:
我竟然跟面试官说这是我第一次面试,问面试官我表现有什么不好地方么,希望面试官指正。面试官说表现还不错,遇到不会问题不放弃有好好考虑,就是一些地方回答不太正确。
回到宿舍后舍友纠正说哪有这么问的,面试官肯定说你还可以,总不能说你挂了吧...还搞得面试官很尴尬。
总结
我感觉第一次电面问题还挺多的。首先是表现的不够沉稳,一开始太激动,说话有点飘。然后分布式明明是自己还不太擅长的地方,结果在这里和面试官互动了很久。一些自己不熟点就不要把概念提出来,真的是你在指引面试官问你问题,面试官问你的东西大部分来源于你刚刚说的里面提到的一些概念。再一个就是好好听面试官提问意图,当时周围环境太嘈杂,好几次题没太听清,搞的一开始回答不对,被面试官纠正了下,好生尴尬。而且问我事务地方,我想面试官可能是想问我隔离级别之类mysql方面,而不是实际应用方面。哎,总的来说表现好差,回来确认下确实很多地方答的不对,被挂也是很自然事情。不过这次面试还是收到颇多经验,还需再接再厉!