阿里暑期实习-大淘宝技术Java后端开发一面凉经
电话面试,面了大约1个小时整,只有问答,没有算法题的环节,所以准备的dp和SQL基本都浪费了
首先自我介绍,然后让我介绍简历中的项目。我挑了其中Java的项目大致介绍了一下,说自己主要负责数据库表的构建任务,当时想往第二范式第三范式或者数据库本身的难点上引导,但是没成功。面试官开始问构建的细节,表的数据量有多大,表的设计和改动都在哪里。这一块回答的一般般,因为项目当时负责的确实不多,这一块也没什么新意
然后面试官问这个项目当时比较困难的点在哪里,由于之前准备了Docker相关的内容,就开始往Docker上引导,于是被问了Docker当时部署的问题。难点方面主要介绍了Docker部署的时候如何构建端口映射远程连接(被追问了如何调试这个问题),以及为什么选用Docker。面试官后面问了Docker在搭建的时候是否考虑了CPU和内存的分配问题(被追问了CPU对Docker而言是共享的还是独占的,但是不了解),以及出现内存溢出或者CPU占用过高的情况如何处理,但是没遇到过,就没回答上来。又问了当时分配的时候采用了什么洗牌算法
接着面试官开始问Spring相关的八股
- 介绍一下Spring的Bean初始化的生命周期
- 介绍一下Spring你自认为了解比较深入的地方
- 这里说了Dao,Server和Controller,介绍一下这个架构的特点
- 介绍一下Spring的反射是怎么实现的
- 介绍一下AOP的特点,代理是如何实现的,JDK里面是怎么实现代理类
- 部署的时候JVM怎么分配内存的(应该是JVM调优的部分)
后续的八股
- 问了Syntronized和ReentrantLock的底层区别和底层实现
- AQS介绍一下
- 介绍一下项目启动的时候,类加载体系是什么,介绍一下双亲委派
- ArrayList的底层扩容,ConCurrentHashMap的实现机制,以及底层数据结构,remove的操作如何实现
- 进程之间怎么通信,介绍一下这些通信之间的使用场景和特点
- 介绍一下线程池的创建原理
- 操作系统零拷贝介绍一下
- 介绍一下AIO
介绍了一下自己的研究方向(NLP),介绍一下自己领域的特点,常用的研究方法,遇到的问题一般都怎么处理
其实后面的八股不是很难,但是吃亏就吃亏在之前基本没复习IO和类加载,主要精力都投入到JVM和MySQL上去了,导致被打了个措手不及……一半的问题都回答的很磕磕绊绊甚至完全不知道怎么回答
#我的实习求职记录##如何判断面试是否凉了#