为记录阿里的电面经历,特与大家分享,岗位是JAVA研发工程师。
一面主要问题如下:
1)首先自我介绍
2)数据结构算法的基本问题,如排序算法,二叉树遍历,后序遍历非递归,图的最短路径问题
3)对一个数组进行绝对值排序的算法
4)java中hashmap的底层实现
5)java中垃圾回收机制GC原理等
6)介绍自己的项目,数据库中用到的数据结构数据模型,死锁的概念(问的应该是数据库的死锁),如何避免死锁?
7)乐观锁和悲观锁?
8)一致性hash算法
9)项目中业务对象的关联关系/关联方式,谈谈左外连接及如何实现多对多关系模型
10)spring的IOC和AOP
11)sping如何实现(保证)事务一致性完整性,spring中事务传播机制类型
12)谈谈WEB的架构(应该指的是j2ee开发架构模型)、项目中的用户场景使用场景
13)对分布式架构的了解,如分布式存储 分布式缓存 分布式计算
14)谈谈对阿里的哪些开源项目有所了解?
15)对淘宝技术是否有了解?
16)对其杭州信息平台事业部其主要业务是否了解(其主要是java方面的开发,另可以重点关注看看工作流引擎)
二面主要问题如下:
1)首先仍然是先自我介绍
2)有过竞赛经历?奖项?专业排名?平时都看些什么书籍?是否参加了学校社团活动?哪个部门?主要工作?时间安排?
3)对哪些技术最熟悉最擅长?我说的是java WEB框架那些,然后就开始问java了
4)接口和抽象类的区别 实现有哪些不同?
5)序列化如何实现?用代码描述。writeObject? objectWrite?ObjectOutputStream.writeObject(). ObjectInputStream.readObject()
6)IO框架 集合框架的描述。如何判断文件是否存在?如何读取一个目录下面的所有文件和子目录?代码描述。
7)广度优先遍历目录下面的所有子目录和文件?代码实现?List和Map的不同?HashMap的实现?如何解决散列冲突?
8)多线程机制?线程休眠10秒?sleep()与wait()的区别。
9)缓冲流buffer的用途?原理?
10)linux下如何查看CPU负载和IO端口的使用情况?如何创建目录?如何搜索一个指定的字符?
11)考察数据库的sql操作,给定了一个具体的业务表,如何对不同类型的数据进行统计。
12)事务的概念?脏读?如何避免?如何在代码中实现?
13)sql代码中如何使用如何定义一个事务?应该是如何定义一个事务的隔离级别?