爱奇艺Java实习生两次面试经验
第一次
第一次是内推,一面电话面试,二面现场面试。
电话面试内容
- 介绍项目
- B树及其原理
- 二叉树知道前序遍历和中序遍历如何重建(剑指offer原题)知道前序遍历和后序遍历能否重建(不能)为什么
- 知道哪些排序算法(外部,内部)时间复杂度 最熟悉哪个(说了快排)为什么快排比较快
- 岛屿的个数(LeetCode 原题)
现场面试内容
- 介绍项目
- 问Redis
- 问中间件(说了消息队列)消息队列的场景 熟悉哪种消息队列
- LRU设计问题
- 手撕代码:链表删除重复节点(包括只留一个重复节点和去除所有重复节点 剑指offer原题)
- 手撕代码:二叉树层次遍历(剑指offer原题)
总结
挂在了手撕代码上,刚开始复习,有思路但代码写的太不熟练。。
第二次
第二次是牛客网网申,面的是存储组,岗位还是Java开发实习生,三面,第一面电话面试,后两面现场面试。
电话面试内容
- Java数据类型及长度
- Spring有什么好处
- Spring IOC原理
- 设计模式(说了单例模式)单例模式具体实现 懒汉式有没有问题(线程不安全) 怎么解决(说了枚举类,内部类和双重检测)双重检测需要注意什么(要用volatile)
- Java多线程(具体什么问题忘了)
- 熟悉的排序算法有哪些 堆排序 时间复杂度 为什么堆排序的速度比较快(回答了比较的次数少 这里和面试官想法不一致 说了一会)
- MySQL锁
二面(现场)
- 介绍项目
- == 和equals()区别(用例子考察)
- Object类有哪些方法 重写equals()需要重写hashCode()吗 为什么
- 根据类的其中一个属性排序 (Comparable类)
- 手写链表的基本操作
- 手撕代码:二叉树的深度(剑指offer原题)
- 手撕代码:判断链表有没有环(剑指offer原题)
- 手撕代码:二维数组中规则/不规则阴影的面积
三面(十分钟后)
- 介绍项目(最熟悉的项目)
- HashMap HashTable区别
- TCP UDP区别
- 进程 线程区别
- OIS七层模型 TCP FTP HTTP HTTPs IP 分别在哪一层
- MySQL索引优化 索引为什么这么快
- ArrayList初始大小 怎么扩容
总结
第三面有些没复习到,比如ArrayList初始大小和扩容,还有一些简单的问题回答错了。。