阿里巴巴Java岗面试经验

来源:互联网 发布:如何升级mac os 编辑:程序博客网 时间:2024/05/18 02:09

首先,阿里的面试官都很nice,每次结束电话都会说谢谢,问到你不会的问题,也会让你别急,会给你提示,面试体验很好。

第一次,上午十点电话去洗手间了,没接到,有点方。

下午3点,阿里电话一面,应该是个技术小哥,跟我聊了很多乱七八糟的,中间我可能有点紧张,说话语速有点快,小哥让我不要急,说我的知识面已经很广,不要怕。之后我就很冷静nice的跟小哥聊天了。

小哥上来问了项目经验,此处略过。之后问了两个简单的算法,数组逆序(直接两个指针一头一尾交换,还有栈,先入后出,然后我说栈不好,占用空间大),第二个是找到一个数组中K个最大的数,我说建一个K个数组的小顶堆,然后发现比最小值大的,就更新堆,复杂度为(nlogk).

然后小哥问我什么课程学的比较好,我说密码学,然后小哥让我解释一下SSL原理,哭,我真的不知道,我就知道他是用来访问网站加密的,然后给小哥介绍了一下RSA,AES。还算记得吧。

小哥问我还有什么学的好,我说数学,小哥愣了,后来跟我聊了一下算法,动态规划的思想,我说就是分阶段的求解,后一阶段依赖前一阶段的解。大概就是这样吧。可能还要细一点,现在我要答得话,可能会跟贪婪算法作对比,列一下两个算法的不同应用场景。下次再问我什么学的好,我就说数据库还有设计模式,当初怎么没想到。

小哥还问了spring,IOC和AOP的原理,已经应用,以及实现(AOP实现可能答得不太好,动态代理JDK反射,以及过滤器)

之后问我java垃圾回收(这个有些地方记得有些模糊,内存不够的时候垃圾回收,其实确切的来讲是这样 Eden space 完成内存分配,当Eden满了,再创建对象。会因为申请不到空间,除法Minor GC.进行 (Eden+S0或者Eden+S1)新生代垃圾回收,Minor GC时,Eden Space不能被回收的对象被放入到空的survivor(S0或者S1,Eden肯定会被清空),另一个Survivor里不能被GC的也会放入这个,必须保证有个Survivor为空。step3 如果survivor满了,则这些对象会被copy到old区,或者survivor没有满,但是有些对象足够被放到old space,当old space满了的时候,进行full GC.

问我项目中遇到的问题,有一个内存泄露,内存泄漏就是有一个长期存活的对象持有短命对象的引用,导致短命对象无法被释放。还有些性能优化。


晚上8:00阿里二面,技术大哥,直接问并发编程。syntronized 内部实现,我说加锁(还有些别的东西,暂时未整理)。

Runnable 和 Thread的区别,一个是类一个是接口,还有(当时并不知道)Runnable可以方便的进行资源共享,thread并不能,thread实现了runnable接口

相关资料参考http://developer.51cto.com/art/201203/321042.htm 

run()和 statr()的区别 我觉得还有更详细专业的答法http://www.cnblogs.com/linjiqin/archive/2011/04/10/2011272.html

问了设计模式 单例模式 与装饰者模式

问了重写和重载 返回值不一样 算不算重载

问了hashmap的实现


两天后 阿里三面:

自我介绍

项目经验

spring

抽象类与接口的区别

Java垃圾回收


列一个我读过的书单吧:

Java编程思想 细读

Java核心技术  扫过其中几章

数据结构与算法分析-java语言描述 细读 手写代码实现

effective Java 读了1/2  关于java常用知识点的思考 目前正在看

深入理解java虚拟机 重点看了内存回收 以及类加载

java并发编程  看了一些章节 目前正在看

算法设计与分析基础 

算法导论  看了一些章节

编程珠玑 主要是讲编程思想

深入理解计算机网络  看了其中几章TCP-UDP  HTTP

大话设计模式 21种设计模式 有些东西讲的不是很清楚

heard First设计模式  常用的13种设计模式 讲解清晰

heard First sevelet &JSP 读了1/2了解了一些基本的东西

程序员面试宝典  感觉是三本书里面 看着最顺眼的

剑指offer 很多例子用C++实现 看着不爽

编程之美  很多游戏题 想法很有意思


0 0