阿里数字供应链实习一面
阿里提前批,
面试我的是一个友善的师兄,还提点了修改简历,真心幸运能遇到这样的师兄。
这个师兄在一面之前还打电话问了问我的情况,提了提自己的建议。
面试中还一边引导我、一边鼓励我,nice!
接下来是面试流程:(可能有点记不完整)
自我介绍
项目的东西
学习过数据结构吧?学习过哪些?(说了树、堆、栈)
数组和链表的区别
在java中的底层数据结构,就是集合的(我说了List、Set、Map,以及对应的下面HsahMap、LinkedList、ArrayList等等都说一遍,这里错了一个,师兄告诉我LinkedList底层是链表,ArrayList底层是数组)
你刚说了HashMap,那他的底层?(jdk1.7+jdk1.8)
那HashMap是不是安全的?(不安全,说了原因,扯出了HashTable、ConcurrentHashMap)
ConcurrentHashMap底层原理 (Segment、HashEntry等等怎么组成、怎么运行的底层架构)
Segment的底层结构 (这个不知道)
刚刚你说Segment是一种可重入锁,那他继承了什么?(ReentrantLock)
那可重入锁和不可重入锁有什么区别 (这里我知道也不够多,这里我说了可重入锁的概念)
Jvm了解吗?Jvm有什么结构?(这里说了 pc计数器、本地方法栈、虚拟机栈、堆以及对应的描述)
jvm的垃圾回收机制了解吗?你说说你的了解。(我说了GC垃圾回收机制,如果查找垃圾继而回收垃圾,描述)
那对于回收垃圾的算法,内部流程是什么?(这个我没了解到)
线程池使用过吗?(这个没使用过,准备在以后项目中尝试,不过我把我了解到的线程池相关的知识说了下)
你的第一个项目思路
为什么用SSH框架完成你的项目
你项目中的多人共用时冲突你是怎么解决的。(这里说了Lock和synchronized )
Lock和synchronized 区别
Spring中的Bean的执行流程 (这个我不太了解,之后会了解)
Struts和SpringMVC的区别(这个我对Struts不了解,所以回答的不好)
SpringMVC是用来做什么功能的 (我是对比的没使用框架的项目,进行的讲解)
常用的数据库,Mysql优化 (这里说了点索引的知识)
你项目中的数据库表有哪些
怎么进行的绑定,主键外键
你的项目数据库是一对多还是多对一
对于排列算法,你最熟悉哪个(我说了冒泡、快速、归并,最熟悉冒泡)
冒泡算法的时间复杂度 (O(n^2))
反问
- 面试更看重哪一方面
- 面试大概有几面
小菜鸡在线希望二面~~