阿里巴巴实习生

来源:互联网 发布:java 发送post请求 编辑:程序博客网 时间:2024/04/27 14:22
前段时间时间参加了阿里巴巴实习生内推/去哪儿网(都已拿到offer)招聘,在这里很大家分享一下自己面试经验和学习方法


  • 一面
  1. IO模型有哪些?
  2. 进程线程的区别
  3. 不同操作系统实现进程有什么区别
  4. gc算法,回收器有哪些
  5. ACID,事务隔离机制
  6. syn在方法上和代码块有什么不同
  7. memcached和其他nosql的区别
  8. 解释mvc
  9. threadlocal解释
  10. volatile的作用
  11. 堆和栈的区别和联系
  12. tcp和udp的不同之处
  13. tcp如何保证可靠的
  14. 数组和链表的区别
  15. 排序算法应用场景
  16. lucene全文检索原理
   一面 总结:一面主要考察一些基本知识,计算机网络、操作系统、数据结构、数据库。第3题跪得很服(55分钟) 

  • 二面
  1. 浏览器输入www.baidu.com,整个流程
  2. 分布式缓存,一致性HasH算法,memcached内存结构
  3. tcp三次握手
  4. tcp滑动窗口解释
  5. SSO单点登录
  6. 数据库分表,分区
  7. 说说对淘宝技术的了解
   二面总结:二面时间比较短(33分钟),问题不是很简单,项目问得比较多,然后会引申出来一些问题,比如我写了memcached,他就会问我一些分布式算法,还有memcached低层一点的知识。比如我项目还有sso。所以他就会问我sso原理

  • 三面
  • 1.Arraylist和linkedlist的区别及原理
  • 2.常用的IO有哪些,io框架用的什么设计模式
  • 3.vector和arraylist有什么区别,设计源码
  • 4.怎样创建一个线程,用什么启动
  • 5,4个窗口,20个人怎样保证并发,说说ConcurrentHashmap,设计源码
  • 6,了解过ACM吗?
  • 7,两个数组一个100长度,一个101长度,前一个是后一个的子集。怎样找出多出的一个数
  • 8,了解NIO吗?说说有点
  • 9,JSP 9大内置对象,转发和重定向的区别
  • 10.看过哪些书籍,说说作者和书的名字
  • 11.分布式节点内部通信机制
  • 12,说说你的框架,怎样理解MVC的
  • 13.知道网络编程吗?说说分布式节点间通信方式
  • 14,说说你的网站架构,SOA管理方式,什么是webservice
  • 15,什么是RPC框架,有什么优点
  • 16,你平常是怎么学习的
  • 17.团队是如何管理的,你处于一个什么位置
  • 18,怎样协调团队矛盾
  • 19,分析网站架构,你为何要用memcached
  • 20,介绍你的项目,分布式数据库怎么分表,用的什么中间件
总结:都说3面是交叉面,就聊聊人生而已,为什么我都基本都是技术问题呢!真的很醉!全程53分钟,跟一面一样,问得非常的全面,简历上面没写的都问了,然后在团队合作方面也问了,主要看眼界和潜力吧!还好挺过来了

去哪儿网的我就不写了,说实话比阿里简单很多!

说说我的学习方法吧,这是我在知乎上面回答的文章,我先复制过来(http://www.zhihu.com/question/26350691/answer/42692522)
很荣幸的今年通过了阿里巴巴的实习生招聘! 
我把我看过的书罗列一下吧! 
  • 《java核心技术:卷一》,这个是我入门java的时候看的,非常适合新手!
  • 《java设计模式》这本书虽然是个外国人写的,但是感觉不是很好。评价一般。学习设计模式的时候我一般都看大牛的博客。
  • 《深入jvm虚拟机》 这本书不用多说,业界非常非常好的一本书!多看几遍,每一遍都有很多收获
  • 《深入分析java web 技术内幕》 @君山 山哥,竟然还能@你出来!(不得不说,这本说在各个方面都非常优秀,不愧是偶像写的书!还求山哥多多照顾。嘿嘿
  • 《Spring技术内幕》在spring源码讲解方面,个人感觉非常不错。能够深入理解内部机制,但是需要多看几遍(
  • 《编程之美》业界翘楚,在算法方面终结的非常好,题目也非常优代表性
  • 《剑指offer》不用多说,和上面一样
  • 《java编程思想》传说是java行业内的神书,但是目前表示还处于一知半解状态
  • 《Hadoop技术内幕》这个可以pass掉,学习hadoop的时候看的
  • 《java网络编程》还挺好,不多说了
  • 《大型网站技术架构》 @李智慧 在大型web架构方方面面简直膜拜,
  • ------------------今天又想起一些------------------------
  • 《分布式java应用:基础与实践》这个是毕玄大大写的书,非常不错哦
  • 《how tomcat works》在讲解tomcat内部原理方面,个人觉得是非常不错的书!等级又要上升一个档次
当然咯,上面这些书我表示只懂50%,惭愧。不能完全吸收大牛的精髓啊! 
  1. 其他的,数据结构,计算机网络,操作系统,数据库都是平时学习的课本,数据库做项目的时候实践一下!先学习基础,在继续深入
  • 数据结构不用多说,什么B树啊、红黑树啊、栈、队列等等,至少保证能够清楚的说出来,说出他们的原理!具体的应用场景是什么啊!
  • 算法的话,建议题目多看看算法题目,或者把leetcode上的算法题目刷一遍(目前本人只AC的两道题,惭愧。知道该资源的时候已经晚了)。另外可以看看july的博客,结构之法 算法之道。目前july已经有自己的网站了,七月问答 ─ 面试·算法·机器学习快速问答平台 .本人是july的忠实粉丝,在此感谢 @July ,对我在算法方面有很大的帮助,谢谢
  • 数据库就更多了,索引(结合B+tree,两个引擎的不同之处,推荐文章:MySQL索引背后的数据结构及算法原理)、存储过程、触发器,事务 @沈询 实力打广告,还有沈大大的视频和博客(http://weibo.com/whisperxd)微博里面有链接哦,ACID等等等等,SQL必须是要熟练的,写SQL的时候多考虑考虑效率,想想还有没有其他的语句能完成这个任务,在哪方面提高了,为何呢?数据库引擎要了解一下,分布式数据库也是,什么主从分离啊,分库、分表、分区啊,这些常见的解决方案
  • 操作系统我属于渣渣,个人就知道一些进程、线程、一些调度算法之类的~~~~(逃
  • 计算机网络如果是研发岗位得话,TCP/IP这一张需要好好看看,HTTP协议不用多说,常见的状态码等等,一次http请求有哪些过程,这个要理解透彻
java:基础非常重要,当然也要深入理解原理,什么JVM,JMM,Classloader,还有一些常见类的源码,自己可以试着分析一遍,现在让你说出LinkedList的内部实现你能不能说出来,HashMap不用多说了。还有重要的,多线程,并发,网络,IO。这些都是要看看看看的!自己多思考!还有楼主说的那些框架,说实话,你要是基础好了,这些都是能够学得很快的,很多问题,看一下源码什么都就懂了!特别是spring的源码要好好看看,里面的架构设计得非常好!各种设计模式满天飞! 
另外,linux要了解一下,脚本语言可以学习一个。比如py!前端要了解一下. 

关于如何看书:两个字, 思考 !三个字, 不要脸的思考!…………,书不在多,在于精,选书要慎重!反正题主一本叫做“王者归来”的书,我看见名字我就不想看! 
除了这些然后呢:每天刷几遍CSDN,平常可以上上oj刷刷题目,国内的牛客网(www.nowcoder.com)非常不错,也可以去leetcode上面把题目刷一遍哦。关注一些好的社区(我一般混迹在CSDN高性能javaweb板块),睡觉之前看微信公众号,当然是技术方面的!推送的文章都挺不错的! 
做程序员个人觉得眼界很重要,就算这不是你的领域,但是你也要知道一点,所以经常关注其他的新技术是非常重要的!平常多接触一点开源技术,多上上github,争取能在github上面贡献一点自己的东西! 

然后,多看看别人的技术博客。思考自己! 
欢迎大家来我的github来踩一踩哦(https://github.com/xiexiaodong)
最后大家你一句话,越努力,越幸运!
0 0
原创粉丝点击