阿里数字供应链实习一面

阿里提前批,

面试我的是一个友善的师兄,还提点了修改简历,真心幸运能遇到这样的师兄。

这个师兄在一面之前还打电话问了问我的情况,提了提自己的建议。

面试中还一边引导我、一边鼓励我,nice!

接下来是面试流程:(可能有点记不完整)


  1. 自我介绍

  2. 项目的东西

  3. 学习过数据结构吧?学习过哪些?(说了树、堆、栈)

  4. 数组和链表的区别

  5. 在java中的底层数据结构,就是集合的(我说了List、Set、Map,以及对应的下面HsahMap、LinkedList、ArrayList等等都说一遍,这里错了一个,师兄告诉我LinkedList底层是链表,ArrayList底层是数组)

  6. 你刚说了HashMap,那他的底层?(jdk1.7+jdk1.8)

  7. 那HashMap是不是安全的?(不安全,说了原因,扯出了HashTable、ConcurrentHashMap)

  8. ConcurrentHashMap底层原理 (Segment、HashEntry等等怎么组成、怎么运行的底层架构)

  9. Segment的底层结构 (这个不知道)

  10. 刚刚你说Segment是一种可重入锁,那他继承了什么?(ReentrantLock)

  11. 那可重入锁和不可重入锁有什么区别 (这里我知道也不够多,这里我说了可重入锁的概念)

  12. Jvm了解吗?Jvm有什么结构?(这里说了 pc计数器、本地方法栈、虚拟机栈、堆以及对应的描述)

  13. jvm的垃圾回收机制了解吗?你说说你的了解。(我说了GC垃圾回收机制,如果查找垃圾继而回收垃圾,描述)

  14. 那对于回收垃圾的算法,内部流程是什么?(这个我没了解到)

  15. 线程池使用过吗?(这个没使用过,准备在以后项目中尝试,不过我把我了解到的线程池相关的知识说了下)

  16. 你的第一个项目思路

  17. 为什么用SSH框架完成你的项目

  18. 你项目中的多人共用时冲突你是怎么解决的。(这里说了Lock和synchronized )

  19. Lock和synchronized 区别

  20. Spring中的Bean的执行流程 (这个我不太了解,之后会了解)

  21. Struts和SpringMVC的区别(这个我对Struts不了解,所以回答的不好)

  22. SpringMVC是用来做什么功能的 (我是对比的没使用框架的项目,进行的讲解)

  23. 常用的数据库,Mysql优化 (这里说了点索引的知识)

  24. 你项目中的数据库表有哪些

  25. 怎么进行的绑定,主键外键

  26. 你的项目数据库是一对多还是多对一

  27. 对于排列算法,你最熟悉哪个(我说了冒泡、快速、归并,最熟悉冒泡)

  28. 冒泡算法的时间复杂度 (O(n^2))

  29. 反问

  • 面试更看重哪一方面
  • 面试大概有几面

小菜鸡在线希望二面~~