阿里巴巴菜鸟校招三面以及未来学习计划

分享攒一波人品。周六如期的面试了阿里菜鸟的3面。说实话,一直觉得自己很渣,不知道是怎么稀里糊涂走到这里的。 下午面试官按时打来了电话,告知这是最后一次技术面试。 后来开始又一次介绍了项目,根据项目面试官问了一些关于项目的问题,和二面相比深入了一些。

随后聊了一下collections,主要说了Hashmap, 面试官开始问TreeMap和HashMap的区别,说了一下底层数据结构的不同。后来衍生到比较两个数据结构查询和插入的效率。为什么有时候会需要TreeMap来遍: 主要还是因为遍历的顺序性,我提了一嘴LinkedHashMap也是顺序遍历的(前面的教训)[acessorder 参数可以设置是否是插入顺序遍历,false为访问顺序遍历,是LRU调度算法常用数据结构],中途提了红黑树的特性。

后面面试官出了一个场景题,说需要在一个网页,用不同的线程去查询baidu,google,Bing,要求同时返回结果,如果某个网页无法返回,设置等待时间后显示结构,怎么设计?   自己选择用CountDownLatch 去实现, 主线程await()其他线程,其他线程去做查询操作(CountDown())。 然后配合Future框架,主线程不需要等待其他线程,可以先做一些渲染工作什么的。然后用Future设置等待时间无法得到返回对象的话,主线程直接向前端返回结果。 不知道我这样设计是不是最合理,面试官说了句还凑合后然后问了一下CountDownLatch具体怎么实现,也答得差不多。然后继续问后面的问题。。。

面试官问最近关心什么新科技新技术吗? 不自量力的说了区块链(比特币)。但是自己只知道大概的实现,不知道内部是怎么实现的(就说了去中心化,分布式储存), 用户通过比特币复杂的算法去挖掘,比特币数量固定,全部挖掘完的话就不会在产生出来了。 没想到面试官具体问了比特币内部怎么运算的,这个我就真不会了。 后来自己查询了一下:他也是通过类似于链表的存储,只是比特币存在于深部,如果一个计算机挖掘到了比特币,那么他会获得比特币的原本。这个时候其他计算机会计算这个比特币的真实性,然后立即停止自己对这个比特币的挖掘,并储存这个比特币的信息在自己的信息链表上(表示承认了这个比特币的真实性,也达到了分布式存储)。 还有一些怎么计算比特币交易的方法就不说了。。。因为我也不知道这个到底算不算内部比特币实现,因为比特币内部涉及很复杂的算法和公私密钥。

接着面试继续说,我答不上来比特币的内部实现后,我笑着说给自己挖了一个坑,其实我应该说自己的毕业设计的(毕业设计是语音识别,比较大数据弱标签训练机情况下,SVM,GMM,多层神经网络不同的表现),面试官也说我确实挖了一个坑,不过现在给你一个弥补的机会,说说你现在看什么书吧。

我就说在看杨晓峰的深入理解Java连载。。然后就开始聊这本书,聊了10分钟吧,主要是CAS,线程池,JDK的迭代什么的。就不具体说了。 最后面试官介绍了部门的业务逻辑15分钟吧。 然后就问有问题问他吗。 整个面试60分钟,问题基本答上来了(也都是基础。。。),主要感觉考察的是学习能力吧,反正这几天看来深受打击在技术上,要努力学习了。。。

除去周末,这是工作日等待的第一天,希望人品爆发,能HR面进入阿里巴巴。。。

学习计划:分布式,Think in Java,SSM框架, 做一个高并发分布式的小项目,自己优化。

 后续:已经HR面试,还在等结果中,目测备胎。。。

猜你喜欢

转载自blog.csdn.net/puzimengya/article/details/81294719