阿里巴巴菜鸟校招二面

2018年7月25日经历了来自大厂的第一次面试经历,随记录之,供往后自己回顾。介绍一下本人情况:英国中上学校计算机硕士(很渣),5月开始系统复习JAVA,从基础开始基本。大学学得比较杂,但是都不深入。

与阿里的一面相比二面的深度自我感觉更深(可能也是自己太菜)。首先也是突然袭击,一面后的一个星期,下午2点杭州打来了电话,在确定二面不需要电脑编程的情况下,预约了5点面试。 面试官很准时,5点打来了电话,刚刚开始很紧张,面试官安慰了一下后,开始了自我介绍。 我的策略是实事求是,我直接指出了我因为缺乏工作经验,所以做的项目可能和工作中实际注重的问题不同(分布式),可能因为如此,面试官后面就没有问关于分布式的问题。

自我介绍介绍后,开始谈自己做的项目。需要深入的说明自己的项目用到的知识点还有其亮点,当然也要说明自己的不足(我主要说的是自己项目在安全性上面没有考虑周全:提了一下Https,其次还有没有考虑高并发的状态(分析了Tomcat服务器最高并发负载只有300左右),最后我发散的提出了自己的改进方法:例如使用NIO的selector来搭建线程池,使之避免过多的线程之间切换带来的开销(上下文切换)。

后面开始了Java方面面试:数据结构,主要从Map上面展开(可能是二面,面试官默认你知道了最基本的概念)。我就从底层介绍了HashMapm,Hashtable,ConcurrentHashMap. 面试官很懂,中间把HashMap的abstract实现类说成了接口,被及时纠正。说完后,面试官继续问还知道其他的吗? 当时已懵逼,就是想不起来LinkedHashMap 的存在。面试官看出来后继续问怎么遍历Map。 遍历Map,用HashMap.keyset()。 遍历Map的四种方法:主要就是keyset,或者利用Map里面的EntrySet,伪代码如下. 

for (Entry<object,object> entry: HashMap.entrySet()){
//output
entry.getKey();
entry.getValue();
}

被虐完数据结构后,开始JVM。 我就从垃圾回收出发来说的。 就是常见的新生代,幸存区,老年代。中间提到了垃圾回收的可达性算法和引用计数法。最后也谈了几种垃圾回收算法:复制算法,标记-清除,清除-整理。中间也提到了几种引用,悲观锁什么的,数据对象头什么,但是面试官没有细问,最后问了我堆中有几个幸存区;我回答了2个,他问为什么? 当时我只知道肯定是帮助优化垃圾回收机制的,但是具体为什么我真不知道,就说不会。。。。

最后面试官估计看了一下时间后就问有什么问题问他的,我就问了一下常规问题后,他说等反馈。。。。在我心里我已经觉得自己凉凉了。总结下来就是感觉自己的基础知识还是薄弱,需要多看代码,多理解一下底层的设计目的。。。路还长~~~ ~~keep clam down and fking going on.

PS: 很开心,27号打来电话通知了三面,说是最后一轮技术了

猜你喜欢

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