为记录阿里的电面经历,特与大家分享,岗位是JAVA研发工程师。
答案文末分享!!!!!答案文末分享!!!!!答案文末分享!!!!!
一面主要问题如下:
- 首先自我介绍
- 数据结构算法的基本问题,如排序算法,二叉树遍历,后序遍历非递归,图的最短路径问题
- 对一个数组进行绝对值排序的算法
- java中hashmap的底层实现
- java中垃圾回收机制GC原理等
- 介绍自己的项目,数据库中用到的数据结构数据模型,死锁的概念(问的应该是数据库的死锁),如何避免死锁?
- 乐观锁和悲观锁?
- 一致性hash算法
- 项目中业务对象的关联关系/关联方式,谈谈左外连接及如何实现多对多关系模型
- spring的IOC和AOP
- sping如何实现(保证)事务一致性完整性,spring中事务传播机制类型
- 谈谈WEB的架构(应该指的是j2ee开发架构模型)、项目中的用户场景使用场景
- 对分布式架构的了解,如分布式存储 分布式缓存 分布式计算
- 谈谈对阿里的哪些开源项目有所了解?
- 对淘宝技术是否有了解?
- 对其杭州信息平台事业部其主要业务是否了解(其主要是java方面的开发,另可以重点关注看看工作流引擎)
二面主要问题如下:
- 首先仍然是先自我介绍
- 有过竞赛经历?奖项?专业排名?平时都看些什么书籍?是否参加了学校社团活动?哪个部门?主要工作?时间安排?
- 对哪些技术最熟悉最擅长?我说的是java WEB框架那些,然后就开始问java了
- 接口和抽象类的区别 实现有哪些不同?
- 序列化如何实现?用代码描述。writeObject? objectWrite?ObjectOutputStream.writeObject(). ObjectInputStream.readObject()
- IO框架 集合框架的描述。如何判断文件是否存在?如何读取一个目录下面的所有文件和子目录?代码描述。
- 广度优先遍历目录下面的所有子目录和文件?代码实现?List和Map的不同?HashMap的实现?如何解决散列冲突?
- 多线程机制?线程休眠10秒?sleep()与wait()的区别。
- 缓冲流buffer的用途?原理?
- linux下如何查看CPU负载和IO端口的使用情况?如何创建目录?如何搜索一个指定的字符?
- 考察数据库的sql操作,给定了一个具体的业务表,如何对不同类型的数据进行统计。
- 事务的概念?脏读?如何避免?如何在代码中实现?
- sql代码中如何使用如何定义一个事务?应该是如何定义一个事务的隔离级别?
- 项目中遇到的问题?解决方式?
- SSI框架?spring如何定义一个bean?代码描述。Bean的生命周期?Bean的scope?
- 对淘宝技术架构的了解?从哪里获取到的?自己今后的职业规划?技术发展方向?
- 最后,对来杭州和阿里工作的意向?然后询问我自己有啥想问的?谈了下 信息平台事业部的主要业务?工作流和ERP?
总体上来看,还是比较注重基础的 尤其是java的多线程和并发安全性及数据库相关,另外对有关开源框架的具体底层实现需要多阅读源码并进行总结。
下面是网上参考到的阿里java面试题目,同样作为借鉴。
- hashmap,hashtable区别。
- 是否了解过hashmap的源码?
- jvm相关,主要是内存分配的过程,何时出发GC,用什么工具或者命令来进行监控?
- 类加载,类隔离机制。
- spring的ioc,aop,事物,然后顺便提到了数据库的事物,两阶段提交,数据库锁的级别,MySQL数据库锁的特殊之处(页级锁)
- java线程池里面的arrayblockingqueue,linkedblockingqueue的用途和区别。
- 设计模式相关,主要讲解用途
- 如何保证数据库集群中ID的唯一性,假设每秒钟并发20万次。
- 设计十万并发级别的网站后台,如何计算使用的ecs数目(云服务器(Elastic Compute Service, ECS 如阿里ECS)是一种处理能力可弹性伸缩的计算服务器,
- 基于BGP最优路由算法构架多线网络,云服务器可以帮助构建更加安全稳定的应用)。
- memcached和redis的异同和用途。
- nosql数据库相关,主要讲了mongodb
- 10G的整数中,取出最大的一个(不光是使用高效的排序算法,还需要考虑内存大小)
- synchronized,volatile,可重入锁的用途和优缺点。
- java nio相关核心的api基本了解和应用
- 一致性hash
- 在一个大系统中存在哪些单点失效的问题
- hadoop优化相关
一面,主要注重基础,问得很深很广,压力面试。
- hashmap、concurrenthashmap底层实现和区别
- spring框架的原理
- 如何写一个orm框架
- hibernate一级缓存和二级缓存,hibernate其他缓存
- hibernate事务传播行为种类
- springmvc原理
- restful的好处
- restful有几种请求,表单如何提交put请求
- web中安全性问题的考虑,如何防止
- web系统整体架构
- hibernate如何实现声明式事务
- java并发包
- volatile
- 平常都看哪些书
- spring底层数据结构
- 如何进行反射,如何提高反射的性能
- 如何实现java的代理,为什么需要实现接口
- TCP协议三次握手
- springmvc用过哪些注解
- springAOP可以使用哪些代理,有什么区别
- 为什么要分三层
- mybatis与hibernate有什么区别,为什么不用hibernate直接写sql语句?
这面没有准备好,广度和深度压力很大,建议大家多看看三大框架源码、原理,并发包。
二面注重于项目
- 什么是restful web service?
- 并发集合包?
- 项目中使用了哪些数据结构?
- TCP中断连接四次挥手?
- MD5加盐
- https
- 支付宝接口开发
- 知道哪些锁,有什么区别?
- 依旧JDK源码
- 项目遇到什么问题,怎么解决?
- JDK1.8有什么新特性?
也许是觉得一面已经问了很多了,这面又答得比较不错,20分钟就结束了,30分钟出了结果。
三面聊人生
leader人very nice,给了一些建议,可能是觉得技术差不多,这面基本没怎么问技术,主要是职业发展、IBM的实习内容之类,我想大家可能也都有自己的想法,18分钟。
hr面聊成长经历:聊了一下对B2B的认识和自己的技术成长历程。
- 进程和线程的区别
- 什么叫线程安全?举例说明
- OSI七层模型,包括TCP,IP的一些基本知识
- 数据库的锁
- DFS,BFS算法
- 还有一些诸如collection framework的Java基础
- http中,get post的区别
其他的面试,感觉问的很有代表性:
第一面(只记得这么多了)
- 笔试题第四题实现又口述了下
- 有个每秒钟5k个请求,查询手机号所属地的笔试题(记得不完整,没列出),如何设计算法?请求再多,比如5w,如何设计整个系统?
- 比较熟悉什么技术?我说jvm和oracle,就让我画jvm的体系结构,画了之后说各个部分的职责,并扯到运行期优化。
第二面(没有技术细节,都是泛泛的,但是我回答的比较保守,只觉得能滔滔不绝的说上半小时才敢说看过或了解)
- 是否愿意去杭州
- 熟悉各种技术框架么?源码读过么?
- 数据库了解什么?mysql了解么
- 前台技术,看我用的ExtJS,就问是否了解JQuery
- 进现在的公司,觉得对技术是否有提升?
第三面,此面没有技术问题
第四面HR(感觉这面问题回答的有点扯,毕竟是这么几年来首次面HR,之前面过2、3个公司,要么很早就挂了,要么感觉流程太长,自己不愿意面下去)
- 愿意去杭州发展么?我说要考虑,hr就问主要考虑什么问题
- 从技术角度来说,你觉得你跟你同学比怎么样
- 你的父母怎么看待你的
- *
- jvm性能调优都做了什么
- 高并发情况下,我们系统是如何支撑大量的请求的
- 集群如何同步会话状态
- 负载均衡的原理
- 数据库事务属性
- 二叉树的遍历算法
- hashtable和hashmap的区别
- 并发、同步的接口或方法
- string、stringbuilder、stringbuffer区别
- https处理的一个过程,对称加密和非对称加密
- 线程的几种状态
- 了解手机开发么
- 个人优势
- 与同事沟通的时候,如果遇到冲突了如何解决
- 工作中觉得哪方面欠缺?
- 有问题要问么?
- 期望薪水
- 为什么要离开现在的公司
那么看到这里的你肯定想问了,答案在哪?我把这些年经历过的面试,和一些刷过的面试题都做成了PDF,PDF都是可以免费分享给大家的,大家关注我的公众号:前程有光,回复领取资料即可获取!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。