【转】揭秘阿里程序员面试现场:面试官问了我些什么?

阿里电话一面:


总计1小时!

  1. 自我介绍。

  2. 项目和框架。

  3. Java 8函数式编程。

  4. 回调函数,函数式编程,面向对象之间区别

  5. 面向对象的三大特点,接口和抽象类区别?

  6. 了解集合类吗?

  7. ArrayList和LinkedList?

  8. HashMap。

  9. HashMap的存放自定义类时,需要实现自定义类的什么方法?

  10. HashMap的负载因子?

  11. 挺熟悉HashMap的,那你了解ConcurrentHashMap吗?

  12. volatile关键字。

  13. Java内存模型了解吗?

  14. 有没有遇见过内存溢出的情况?

  15. ThreadLocal为什么保证线程私有?

  16. 线程池了解吗?

  17. JVM内存结构?

  18. Java垃圾回收。

  19. 动态规划。

  20. 从10亿个数中找不重复的数(听成从11个数中找不重复的,心想怎么这么无聊的问题)

  21. TCP为什么三次握手,而不是两次?

  22. TCP为什么是四次挥手,其中TIME_WAIT和CLOSE_WAIT这两个阶段。

  23. select和poll区别?

程序员阿里二面:


  1. 项目架构。

  2. Java 8中stream迭代的优势和区别?

  3. 框架封装jdbc受检异常的考虑和原因?

  4. 处理器指令优化有些什么考虑?

  5. 同步等于可见性吗?

  6. synchronized和Lock一些区别。

  7. synchronized可重入吗?

  8. Lock内部实现。

  9. synchronized可以替代读写锁吗?

  10. 当获取第一个获取锁之后,条件不满足需要释放锁应当怎么做?

  11. 知道线程的中断吗?

  12. 既然线程调用中断方法不会停止程序,那么有什么用?

  13. Collection下面的接口。

  14. 还了解除util其他包下的List吗?

  15. CopyOnWriteArrayList多线程安全吗?

  16. 反射能够使用私有的方法属性吗和底层原理?

  17. 32位系统的最大寻址空间?

  18. 在不使用WebSocket情况下怎么实现服务器推送的一种方法。

程序员阿里三面:


  1. 介绍你了解数据结构。

  2. 判断二叉树是否为平衡二叉树。

  3. 10G文件的淘宝商品编号,只有512M内存,怎么判断究竟是不是合法编号(即编号是否存在)。

  4. 假如淘宝存着一个包含10w个敏感词的词库,紧接着需要从多个商品标题中随机抽查3个有没有包含敏感词的商品。

  5. 浏览器访问淘宝官网域名,浏览器的一系列步骤。

  6. 仔细谈谈DNS解析。

  7. TCP的三次握手和四次挥手具体过程。

  8. 进程通信方式,有这方面的编程经验吗?

  9. 创建线程三种方式。

  10. Class加载了解吗?

  11. Java类信息方法信息存放在哪里?

  12. 仔细谈谈JVM内存结构。

  13. 堆的各个分代。

  14. 了解分布式吗?

面试


Java研发工程师,共经历了5轮技术面+HR面。据面试内容来看,应该没有被调剂,因为5位面试官的技术关注点很相近。

1面印象最深,面试时间长达2小时,面试官人很nice,问了我一些基础知识(就是大家都有准备的那些基础知识),线程池用过哪些?底层工作原理?怎么创建一个新线程?HashMap的底层原理?其查找效率?如何设计淘宝秒杀系统(重点关注架构,比如数据一致性,数据库集群一致性哈希,缓存,分库分表等等)?接着问了两个项目,然后就项目问题探讨至面试结束(晚上11点结束的),不得不说面试官很辛苦。

2面面试官的声音让人很感到轻松,语气态度非常平易近人,面试时间约30多分钟。面试内容主要为Java基础,比如JVM的GC发展史及现在主流的Java虚拟机的GC原理?如何在生产线Dump堆分析程序是否有内存及性能问题?平时通过哪些途径获取新知识?遇到困难解决问题的思路?然后交流了知识在生产环境中的运用,很有共鸣。

3面面试和正常面试一样,时间约半个多小时。面试官主要考察了Java基础,数据库以及项目。主要问题有MySQL有几种索引?主键索引底层的实现原理?经典的01索引问题?如何在长文本中快捷的筛选出你的名字?面试官在项目这块进行了评价和详细了解,但是没有详细追问下去,不然估计又得俩小时==。

4面感觉有点压力面,面试一开始我就挺紧张的,面试官给我出了一道具体业务场景中出现的问题,大意为如何确保分布式环境下异步消息处理的顺序性?我说了很多思路和方案,面试官肯定了我的思路,但是我的方案还是不够严谨。最后面试官跟我说的一个更好的解决方法,深以为然,然后面试就结束了,这面过后心里压力蛮大的。

5面来的挺突然的,当时在重构别人的代码,思想还是蛮放空的,然后杭州的电话就打过来了,突然就紧张起来。还好面试还算顺利,面试官同样的以聊项目为主,穿插的问了不少基础知识,整个过程大概40分钟,然后面试就愉快的结束了。

6面听到面试官自我介绍是HR之后,我特别开心,因为紧张的技术面终于完成了。HR人也很nice,很轻松的和我聊了一些学习工作方面的经验和想法,然后差不多半小时面试就结束了。

等了22天拿到了offer,期间特别的很焦急,心情大家应该都感同身受,心里总是想着是不是自己哪里表现得不好,然后被淘汰了,还好我还是幸运的,昨天晚上的offer让我非常激动,漫长的面试加等待确实很考验人的心理素质。 这里要恭喜已经拿到offer的同学,同时昨晚没拿到offer的同学也不要气馁,且不说offer可能还没发完,就算这次内推失败了,咱也长了见识,增加了面试经验,后边网申再加油(我拿到offer之前就是这么安慰自己的)。

你可能感兴趣的:(【转】揭秘阿里程序员面试现场:面试官问了我些什么?)