北上广深杭五大城市,Java程序员分享入职阿里前的面试经验

本文分享了北上广深杭五大城市Java程序员在阿里面试的经历,包括面试流程、内容、算法题和前期准备。面试涉及自我介绍、项目经验、技术问题(如Java虚拟机、数据结构、并发等)、算法题(如二分查找)和HR问题。建议面试者巩固基础、刷题、熟悉项目,以及参加相关竞赛以增加面试优势。
摘要由CSDN通过智能技术生成






java程序员面试经验(北京) - 阿里巴巴

面试过程:

一、 面试流程:

我一共经历三轮面试,两轮技术面,一轮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最后“你还有什么问题?”,可就企业社会责任的、员工的食和行进行提问。

面试官问的面试题:

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

C++软件工程师 面试经验( 杭州 ) - 阿里巴巴

面试过程:

(1)自我介绍,做过什么项目。

(2)java虚拟机的区域如何划分,每一个区的动能,这一块自由发挥。

(3)双亲委派模型中,从顶层到底层,都是哪些类加载器,分别加载哪些类?

(4)有没有可能父类加载器和子类加载器,加载同一个类?如果加载同一个类,该使用哪一个类?

(5)HashMap的结构,get(),put()是如何实现的?HashMap有哪些问题?

(6)ConcurrentHashMap的get(),put(),又是如何实现的?ConcurrentHashMap有哪些问题? ConcurrentHashMap的锁是读锁还是写锁?

(7) HashMap与HashTable的区别

(8)sleep()和wait()分别是哪个类的方法,有什么区别?synchronized底层如何实现的?用在代码块和方法上有什么区别?

面试官问的面试题:

(15)数据库中的分页查询语句怎么写?

(16)什么是一致性哈希?用来解决什么问题?

(17)Redis的存储结构,或者说如何工作的,与mysql的区别?有哪些数据类型?

(18)项目中用到redis,为什么选用redis,了解其他NoSQL数据库吗?在你的项目中是如何运用redis的?key是什么,value是什么?

(19)归并排序的过程?时间复杂度?空间复杂度?

(20)你平常用什么排序?快速排序。说说在那些场景下适用,哪些场景下不适用。

(21)你在项目中做什么?因为我用到Solr,他就问我Solr是如何工作的?

软件开发工程师 面试经验( 上海 ) - 阿里巴巴

面试过程:

1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。

面试官问的面试题:

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的


运筹算法工程师 面试经验( 深圳) - 阿里巴巴

面试过程:

由于人在外地,HR是电话面试

先是进行简单的自我介绍,中文一遍,英文一遍

研究生主要课程有什么?

讲述研究生课程中最印象深刻的一个知识点,详细解释一下

问了一下实习经历,让我详细讲述下实习中的某项目实施过程

之后问了一些具体的技术问题:

平时编程使用哪种语言?

堆和栈有什么区别?

平衡二叉树是什么?

你都知道什么优化算法?

然后问我有什么要问他的吗,我就问了一下岗位大概的工作内容及运营方向,

他讲了下说是负责手机淘宝...然后就说等通知

面试官问的面试题:

先是进行简单的自我介绍,中文一遍,英文一遍

研究生主要课程有什么?

讲述研究生课程中最印象深刻的一个知识点,详细解释一下

问了一下实习经历,让我详细讲述下实习中的某项目实施过程

之后问了一些具体的技术问题:

平时编程使用哪种语言?

堆和栈有什么区别?

平衡二叉树是什么?

你都知道什么优化算法?

软件测试工程师 面试经验( 广州) - 阿里巴巴(中国)网络技术有限公司

面试过程:

1,你知道ios里面存数据有哪些方法吗?

我答曰:sqlite,plist,app sandbox里面的文件夹,如document,tmp等等。面试官开心的再问(因为他笑了):那你知道还有一个很变态的方法吗?我思考了下,觉得好像没有吧,就问能否给点提示啊?他开始笑了,回曰,就是那个存到密匙里的啊,好像是那个地方吧,我也有点忘了,这个是什么地方啊,不好意思,我也忘了啊。我当时觉得这也很正常,反而觉得他挺年轻,比较单纯,不过很和善,不象有些面试官很严肃。

面试官问的面试题:

2,你知道UITableView里面每行的高度怎么设吗?

我回答:这个我用过,但具体有点忘记怎么设高度了,要查文档,是不是在其对应的delegate里相应callback函数里可以设置啊?对方回答:是的,然后你知道每行的默认高度是多少吗?我无语了。。。的确好久没做了,这东西我怎么记得住?我说不知道啊,对方开心了:44啊。

3,然后又问我在ios里面实现微博的下拉刷新列表怎么实现。

我答曰:ios里我不知道,但android里我知道,有个开源的pulloverrefresh控件,直接可以用啊。

JAVA工程师 面试经验( 成都 ) - 阿里巴巴

面试过程:

先是做笔试题,那题目感觉好难

面试的是个技术的TeamLeader,水平很好,问了一些基础问题 然后就是很高端的技术问题,很犀利 反正说了很多

面试官问的面试题:

1、http请求网络异常的解决方案

2、关于内存溢出问题的查找方式

3. 一张用户表有1000万条记录,主键为自增ID,从中取10条随机记录,如何实现?简述你的解决方案,可以用伪代码描述。

4. 一个大型网站用一张LOG表来记录用户的操作行为,每天会产生上百万条记录。另有一个调试程序定时清除三天前的数据(比如每天凌晨4点执行),以保障LOG表的数据量不会无限增长,要求写出调度程序的伪代码。

5. 写出Linux里查看进程的命令

你也可以把你的面试经验在评论区分享出来,等着你哦~~~


java程序员面试经验(北京) - 阿里巴巴

面试过程:

一、 面试流程:

我一共经历三轮面试,两轮技术面,一轮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最后“你还有什么问题?”,可就企业社会责任的、员工的食和行进行提问。

面试官问的面试题:

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

C++软件工程师 面试经验( 杭州 ) - 阿里巴巴

面试过程:

(1)自我介绍,做过什么项目。

(2)java虚拟机的区域如何划分,每一个区的动能,这一块自由发挥。

(3)双亲委派模型中,从顶层到底层,都是哪些类加载器,分别加载哪些类?

(4)有没有可能父类加载器和子类加载器,加载同一个类?如果加载同一个类,该使用哪一个类?

(5)HashMap的结构,get(),put()是如何实现的?HashMap有哪些问题?

(6)ConcurrentHashMap的get(),put(),又是如何实现的?ConcurrentHashMap有哪些问题? ConcurrentHashMap的锁是读锁还是写锁?

(7) HashMap与HashTable的区别

(8)sleep()和wait()分别是哪个类的方法,有什么区别?synchronized底层如何实现的?用在代码块和方法上有什么区别?

面试官问的面试题:

(15)数据库中的分页查询语句怎么写?

(16)什么是一致性哈希?用来解决什么问题?

(17)Redis的存储结构,或者说如何工作的,与mysql的区别?有哪些数据类型?

(18)项目中用到redis,为什么选用redis,了解其他NoSQL数据库吗?在你的项目中是如何运用redis的?key是什么,value是什么?

(19)归并排序的过程?时间复杂度?空间复杂度?

(20)你平常用什么排序?快速排序。说说在那些场景下适用,哪些场景下不适用。

(21)你在项目中做什么?因为我用到Solr,他就问我Solr是如何工作的?

软件开发工程师 面试经验( 上海 ) - 阿里巴巴

面试过程:

1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。

面试官问的面试题:

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的

3、BOSS主要是人生和理想。1、问题些项目经历

2、人力问些普通的为撒想换工作,工作规划撒的


运筹算法工程师 面试经验( 深圳) - 阿里巴巴

面试过程:

由于人在外地,HR是电话面试

先是进行简单的自我介绍,中文一遍,英文一遍

研究生主要课程有什么?

讲述研究生课程中最印象深刻的一个知识点,详细解释一下

问了一下实习经历,让我详细讲述下实习中的某项目实施过程

之后问了一些具体的技术问题:

平时编程使用哪种语言?

堆和栈有什么区别?

平衡二叉树是什么?

你都知道什么优化算法?

然后问我有什么要问他的吗,我就问了一下岗位大概的工作内容及运营方向,

他讲了下说是负责手机淘宝...然后就说等通知

面试官问的面试题:

先是进行简单的自我介绍,中文一遍,英文一遍

研究生主要课程有什么?

讲述研究生课程中最印象深刻的一个知识点,详细解释一下

问了一下实习经历,让我详细讲述下实习中的某项目实施过程

之后问了一些具体的技术问题:

平时编程使用哪种语言?

堆和栈有什么区别?

平衡二叉树是什么?

你都知道什么优化算法?

软件测试工程师 面试经验( 广州) - 阿里巴巴(中国)网络技术有限公司

面试过程:

1,你知道ios里面存数据有哪些方法吗?

我答曰:sqlite,plist,app sandbox里面的文件夹,如document,tmp等等。面试官开心的再问(因为他笑了):那你知道还有一个很变态的方法吗?我思考了下,觉得好像没有吧,就问能否给点提示啊?他开始笑了,回曰,就是那个存到密匙里的啊,好像是那个地方吧,我也有点忘了,这个是什么地方啊,不好意思,我也忘了啊。我当时觉得这也很正常,反而觉得他挺年轻,比较单纯,不过很和善,不象有些面试官很严肃。

面试官问的面试题:

2,你知道UITableView里面每行的高度怎么设吗?

我回答:这个我用过,但具体有点忘记怎么设高度了,要查文档,是不是在其对应的delegate里相应callback函数里可以设置啊?对方回答:是的,然后你知道每行的默认高度是多少吗?我无语了。。。的确好久没做了,这东西我怎么记得住?我说不知道啊,对方开心了:44啊。

3,然后又问我在ios里面实现微博的下拉刷新列表怎么实现。

我答曰:ios里我不知道,但android里我知道,有个开源的pulloverrefresh控件,直接可以用啊。

JAVA工程师 面试经验( 成都 ) - 阿里巴巴

面试过程:

先是做笔试题,那题目感觉好难

面试的是个技术的TeamLeader,水平很好,问了一些基础问题 然后就是很高端的技术问题,很犀利 反正说了很多

面试官问的面试题:

1、http请求网络异常的解决方案

2、关于内存溢出问题的查找方式

3. 一张用户表有1000万条记录,主键为自增ID,从中取10条随机记录,如何实现?简述你的解决方案,可以用伪代码描述。

4. 一个大型网站用一张LOG表来记录用户的操作行为,每天会产生上百万条记录。另有一个调试程序定时清除三天前的数据(比如每天凌晨4点执行),以保障LOG表的数据量不会无限增长,要求写出调度程序的伪代码。

5. 写出Linux里查看进程的命令

你也可以把你的面试经验在评论区分享出来,等着你哦~~~


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值