阿里巴巴

300人关注 关注 3400人分享

公司福利 | 工资涨幅 | 年终奖 | 晋升机会 | 工作节奏 | 工作压力 | 工作时间 | 工作氛围

阿里巴巴java程序员面试经验(共18条) 最近更新时间:2023-06-20 15:06:27

2020-04-24 09:20:59 | 校园招聘
面试过程:

由于我在自我介绍时提到应聘的是Java岗,因此面试官直接抛出问题:“你对Java这门语言了解的深度是多少”,“是否看过JDK的源码”(当场傻眼...)。如果回答看过,好,进坑了,因为面试官会继续追问:“那来说一下都看过哪部分”(大型懵逼现场)。卡壳了,好,引导来了,“比如Java的集合有看过吗”,于是大胆引出HashMap。好,又进坑了,“那咱们聊一下HashMap,首先说一下它的原理吧,它是以一种什么样的数据结构来实现的”。

面试官问的面试题:

阿里巴巴Java程序员面试题

1.HashMap的数据结构——引出Java7跟Java8的区别
2.在什么情况下会做一个链表到红黑树的转换
3.除了数据结构之外,Java8跟Java7在HashMap上还有什么不同
4.扩容的过程,在什么情况下会扩容
5.扩容机制中的capacity初始值为什么是16,可不可以自定义成15,为什么一定要是2的指数次方
6.简单介绍一下hash算法,它的核心性能,或者说判断一个hash算法好坏的指标是什么,indexFor()函数的实现
7.HashMap为了解决什么问题?——引出哈希碰撞
8.介绍ConcurrentHashMap的数据结构
9.ConcurrentHashMap可以支持多少并发线程
10.ConcurrentHashMap属于JOC下的一个类,对JOC这个包的了解
11.是否用过synchronized,之前是否碰到过并发问题,怎么处理
12.在Java技术栈方面,有没有比较擅长或者深入了解的点,是否从源码上看过一些东西
数据库1.对MySQL了解多少——引出必问知识点(划重点!!!事务和索引)
2.MySQL用的隔离级别是什么,这个隔离级别下会出现什么问题——引出数据库的并发问题
3.MySQL使用这种隔离级别时,是如何解决幻读问题的(引申,理解其他并发问题的解决原理)
4.MySQL的调优机制,主要是哪些方面的调优——引出索引
5.在MySQL的InnoDB这个存储引擎下,聚集索引(或者聚簇索引)和非聚集索引这两个概念
6.MySQL中的索引是用什么数据结构存储的——此处应该引出B+树
7.为什么通过索引查询速度会更快一些——此处应该引出二叉树算法

赞一下(5) 踩一下 查看面试题参考答案>>

2017-05-20 03:42:49 | 校园招聘
面试过程:

一、 面试流程:

我一共经历三轮面试,两轮技术面,一轮HR面。HR面结束次日拿到offer。

二、 面试内容:

1. 自我介绍。虽然并不是每次面试面试官都会要求自我介绍,但连续三轮面试都不遇到自我介绍的可能性也不大。同时,自我介绍是一个较易准备的部分。所以,无论如何准备好自我介绍。考虑到大部分人对编程内容都会有所偏重,所以在自我介绍过程中使用技巧引导面试官的注意力也非常重要,当面试官的注意力落在你所擅长的领域时,你就能在面试过程中发挥最大的优势。
2. 项目。两轮技术面过程中,面试官都花了很多时间针对项目进行提问。但提问方向很常规,包括项目整体构架、所使用的数据结构、项目主要技术难点、遇到难题如何解决、项目人员分配问题等,只要全程参与项目并对项目足够熟悉,基本可以应付这一部分的问题。
3. 竞赛。我并没有参加过较大型的赛事,所以直接回答没参加过。但若参加过阿里方面举办的竞赛,可在面试过程中作为较大的加分项。
4. 编程。阿里虽并不强制要求面试过程中进行现场编程,但面试官总要对面试者的算法和编程能力进行检验,所以大部分面试者还是会被要求进行现场白板编程。
5. 其他基础性问题。基础性问题涉及范围很广,你会被问到的具体问题取决于你项目的偏向、面试中回答的情况及面试官的偏好。就我个人而言,被问到的问题包括:什么是StackOverflow;Poll和Select区别;Hashtable, HashMap,和ConcurrentHashMap 的底层实现原理;GC的工作原理;OSI七层协议;实现多线程的方式;线程同步,并发操作怎么控制;HTTP和HTTPS的区别;sendRedirect, foward的区别;Session, Cookie的区别;JVM垃圾回收实现原理;TCP中断连接四次挥手;基本数据类型;死锁;Java和C/C++之间的差别;数据库事务隔离机制的特点等。(排序不分先后)
6. 其他常规HR的问题。包括对公司文化的理解,对公司发展前景的看法和建议,对前两轮面试官的看法,在读书期间参加过的社团活动,印象最深刻的事情,个人的优缺点,兴趣爱好,喜爱书籍,期待薪酬,入职情况等。

三、 算法题

收集了身边几个参加阿里面试的同学的面试情况,发现阿里面试考察的编程题都较简单,基本就是对数据进行排序或查找,相同或者相类似的题目都可以在Lintcode上面找到。我当时被要求现场手写二分查找的算法。算法不难,比较麻烦的是现场手写以及尽量做到bug-free。

四、 前期准备

1. 参加竞赛。如果是为明年或后年面试做准备,可尽量参加阿里举办的相关竞赛,作为自己的加分项。
2. 巩固自己的计算机基础知识。阿里面试官在校招过程中,对基础知识的扎实程度很看重,所以一定要稳扎稳打。
3. 积极刷题。面试中面试官要求手写的算法大都大同小异,皆可在类似lintcode这样专门刷题的网站上找到。不仅我,包括我认识的其他人,面试中遇到的算法题都基本不会逃脱lintcode的范围。只要面试前积极刷题,对所有面试题做到熟稔,就可以自如的面对面试中出现的算法题,才能进一步做到bug-free,进一步提高代码的运行效率,给面试官留下最好的印象。
4. 项目在精不在多。对手头已经进行的项目,一定要认真做,深入了解其内在原理,不可浮于表面。

五、 小建议

1. 在进行面试前,对自己的项目进行回顾、加深熟悉和梳理。保证不在项目问题上丢分。
2. 知之为知之,不知为不知。校招过程中,面试官不会因为你在一个领域的不熟悉而否决你,重要的是表现出扎实的基础功底和优秀的潜能。
3. 使用lintcode进行刷题时,利用类别分类及难易分类功能从易到难集中刷题,提高刷题效率。
4. 刷题过程时,适当进行白板训练,降低面试过程中白板编程的陌生感和不适应感。
5. 刷题过程中勤加总结并进行记录,方便面试前突击。
6. 对于HR最后“你还有什么问题?”,可就企业社会责任的、员工的食和行进行提问。

面试官问的面试题:

阿里巴巴java程序员面试题

项目整体构架、所使用的数据结构、项目主要技术难点、遇到难题如何解决、项目人员分配问题等

赞一下(2) 踩一下 查看面试题参考答案>>

2016-03-18 11:33:26 | 校园招聘
面试过程:

阿里巴巴有十来个面试地点,大家可以根据自己的情况选择面试的地点,我选择的是北京,面试地点在北京国家广告园区,在大望路,好远…到地点以后,阿里巴巴会有员工指导进入面试区,有身份认证啊之类的,感觉好正规,员工指导进入面试大厅,阿里巴巴有一个排队系统,如果有空闲的面试官他就会通过叫号的方式叫你去面试,我当时比较幸运,一进大厅就叫我去面试,进入面试大厅,感觉好大(阿里巴巴面试大厅是一块非常开阔的地方,然后放满了小桌子,每一个座子就是有两把椅子,一把是面试官做,一个就是应聘人员做)…结果我坐下面试官就来一句,这是我第一次参加这么大的面试,有点逗。大厅应该有80位面试官,每一个都在自己面试自己的人,所以大厅有点吵,但是我感觉挺好,这样面试的人可以减少不少压力。

面试开始,面试官让自我介绍,然后我就介绍了一下自己的基本情况,还有自己做过的项目,然后重点介绍了我在大三自己创业的一个项目——《饭小桶》http://www.fanxiaotong.com,这个是一个成熟的商业项目,面试官比较感兴趣,详细问了一下这个项目,又问了一下这个项目用到的技术和遇到的问题,以及如何推广之类

面试官问的面试题:

阿里巴巴java程序员面试题

1,什么是ANR,如何避免ANR?
2,什么是深拷贝和浅拷贝
3,Android 中常用的数据存储方式
5,图片的缓存技术
6,bitmap的recycle的底层的实现
7,bitmap对象的理解
8,android系统有什么不好的,需要怎么改进
9,周边餐馆是怎么做的
10,java的容器有哪些,他们有什么区别
11,java堆和栈在内存中的分配情况
12,java序列化方式有几种?android用的是哪一种,为什么?

赞一下(0) 踩一下 查看面试题参考答案>>

1   共 1 页

还需查看阿里巴巴 更多信息?

相关公司面试经验