阿里的面试很注重项目和基础,并会结合一定的实际业务问题进行考察。建议可以做一些拿得出手的项目,这样可以在面试的时候给面试官一个好的印象,并将面试问题引导到熟悉的领域;反之,如果为了项目经验写一些自己参与过但不熟悉的项目,很可能就会遇到一问三不知的情况,建议在写项目经验时只写自己熟悉的。
Java基础是非常重要的考点,其实Java基础要准备的内容并不多,问来问去其实也就是那几类的问题,重点复习集合和并发相关的知识,最好可以对JVM深入理解。Spring框架不用多说,Java后端面试几乎是必考的,多了解一下工作流程,如果有余力的话甚至可以去看看实现的代码或者自己实现一个简单的框架。实际业务问题最好去先了解一下自己申请的事业部是做什么的,多思考一下一般会遇到哪些业务问题。
面试过程前后经历了一个多月的时间,也感受到了阿里工作的忙碌。成功通过五面拿到了阿里的offer,或许只是运气好罢了,但多总结面试经验,多复盘面试问题,一定会在某种程度上增加通过面试的机会,相信各位多多积累经验,也一定可以拿到
一面:
1、hashmap、concurrenthashmap底层实现和区别;
2、spring框架的原理;
3、如何写一个orm框架?
4、hibernate一级缓存和二级缓存,hibernate其他缓存;
5、hibernate事务传播行为种类;
6、springmvc原理;
7、restful的好处;
8、restful有几种请求,表单如何提交put请求?
9、web中安全性问题的考虑,如何防止?
10、web系统整体架构;
11、hibernate如何实现声明式事务?
12、java并发包;
13、volatile;
14、平常都看哪些书?
15、spring底层数据结构?
16、如何进行反射,如何提高反射的性能?
17、如何实现java的代理,为什么需要实现接口?
18、TCP协议三次握手?
19、springmvc用过哪些注解?
20、springAOP可以使用哪些代理,有什么区别?
21、为什么要分三层?
22、mybatis与hibernate有什么区别,为什么不用hibernate直接写sql语句?
二面:
1、hashmap,hashtable区别。
2、是否了解过hashmap的源码?
3、jvm相关,主要是内存分配的过程,何时出发GC,用什么工具或者命令来进行监控?
4、类加载,类隔离机制。
5、spring的ioc,aop,事物,然后顺便提到了数据库的事物,两阶段提交,数据库锁的级别,MySQL数据库锁的特殊之处(页级锁)
6、java线程池里面的arrayblockingqueue,linkedblockingqueue的用途和区别。
7、设计模式相关,主要讲解用途如何保证数据库集群中ID的唯一性,假设每秒钟并发20万次。
8、设计十万并发级别的网站后台,如何计算使用的ecs数目;
9、memcached和redis的异同和用途。
10、nosql数据库相关,主要讲了mongodb
11、10G的整数中,取出最大的一个;
12、synchronized,volatile,可重入锁的用途和优缺点。
13、java nio相关核心的api基本了解和应用
14、一致性hash
15、在一个大系统中存在哪些单点失效的问题
16、hadoop优化相关
三面:
1、什么是restful web service?
2、并发集合包?
3、项目中使用了哪些数据结构?
4、TCP中断连接四次挥手?
5、MD5加盐;
6、https相关;
7、支付宝接口开发;
8、知道哪些锁,有什么区别?
9、依旧JDK源码;
10、项目遇到什么问题,怎么解决?
11、JDK1.8有什么新特性?
12、聊了一下职业发展、职业规划;
四面
1、首先仍然是先自我介绍;
2、对哪些技术最熟悉最擅长?我说的是java WEB框架那些,然后就开始问java了
3、接口和抽象类的区别 实现有哪些不同?
4、序列化如何实现?用代码描述。writeObject? objectWrite?ObjectOutputStream.writeObject(). ObjectInputStream.readObject();
5、IO框架 集合框架的描述。如何判断文件是否存在?如何读取一个目录下面的所有文件和子目录?代码描述。
6、广度优先遍历目录下面的所有子目录和文件?代码实现?List和Map的不同?HashMap的实现?如何解决散列冲突?
7、多线程机制?线程休眠10秒?sleep()与wait()的区别。
8、缓冲流buffer的用途?原理?
9、linux下如何查看CPU负载和IO端口的使用情况?如何创建目录?如何搜索一个指定的字符?
10、考察数据库的sql操作,给定了一个具体的业务表,如何对不同类型的数据进行统计。
11、事务的概念?脏读?如何避免?如何在代码中实现?
12、sql代码中如何使用如何定义一个事务?应该是如何定义一个事务的隔离级别?
13、项目中遇到的问题?解决方式?
14、SSI框架?spring如何定义一个bean?代码描述。Bean的生命周期?Bean的scope?
15、对淘宝技术架构的了解?从哪里获取到的?自己今后的职业规划?技术发展方向?
16、最后问我有什么想问的?谈了下信息平台事业部的主要业务;
HR面
- 如何看待阿里这家公司?为什么说阿里在Java领域做的比较好?
- 为什么会选择这个事业部呢?
- 之前有用过我们事业部的产品吗?如何看待我们的产品?
- 对于游戏行业和互联网行业,有什么偏好吗?
- 自己对编程语言的选择和判断?
- 在Java多年的开发过程中,有什么总结和心得吗?
- 觉得自己有什么优点和待发展的点?
- 是什么支撑你愿意自学?
- 项目成功对于你的意义在哪里?
- 这一次找工作的目标是什么?
- 如果获得了阿里的实习机会,希望获得哪些成长?会有哪些挑战?
- 对前几面的面试官有什么评价吗?
- 之前有实习过吗?
- 为什么选择现在的学校?
- 对团队的风格和氛围有什么喜好吗?
- 自己在合作中是处于什么样的角色呢?
- 和同学在协作中存在什么困难吗?
- 对自己毕业之后的成长有做过什么规划吗?
- 平时会看一些技术类的书籍吗?看这些书籍对你的意义是什么?
- 如何判断和选择offer?
篇幅限制,没能展示面试题答案。文中涉及面试题目答案总结(文末获取)
学习没资料,面试找不到方向怎么办?
下面是针对一到五年开发的Java程序员整理的Java实战视频+电子版本书籍+大厂面试场景文档分享给大家学习!(文末获取)
Java核心知识点:内容点包含有java集合,jvm,并发编程,spring,mybatis,springMVC,微服务,Dubbo,netty,网络,zookeeper,kafka,rabbitMQ,readis缓存,数据库,设计模式 等
大厂面试题及场景
架构视频