面试复盘 |爱奇艺提前批Java一面面经
- 自我介绍,然后问项目
- Java 的 Map 里优秀的设计(说了 HashMap 的数据结构,长度为 2n 的好处,扩容,ConcurrentHashMap 的锁)
- Semaphore,CountDownLatch,CyclicBarrier 区别(Semaphore 可以acquire和release,CountDownLatch 设置一个屏障,前置任务完成才会执行这个任务,CyclicBarrier 可以重置屏障)
-
说说Mysql 的 bin log,redo log 和 undo log(说了怎么实现的,作用)
- 说说 Mysql 的索引(说了InnoDB 的 聚簇索引和非聚簇索引,MyISAM 的二级索引,hash 索引)
- Redis 为什么不需要多线程(Redis 性能瓶颈在于内存和网络IO,使用了多路复用)
- Redis 多路复用怎么实现(Reactor 模式)
- select,poll,epoll 的区别,水平触发和边缘触发的区别
- Redis 过期键删除策略(惰性删除 和 定期删除),常用类型(string,list,hash,set,zset),sds 怎么实现的,这样实现的优点(可动态扩展内存、二进制安全、快速遍历字符串 和与传统的C语言字符串类型兼容)
- GET 和 POST 区别(幂等性,参数位置和长度,是否可缓存,安全性)
- HTTP 3.0 的优势(说了是基于UDP实现的),然后问为什么基于UDP(没答出来),主流在用的HTTP协议(HTTP 1.1,不知道是不是),HTTP 2.0 的优点(只答出来了 首部压缩)
- SpringBoot 相比 Spring 的优点(自动配置,不用写一堆xml配置文件)
算法:
- lc121,买卖股票的最佳时机,只说了思路
- 递归实现冒泡排序
另外:HTTP 主流的协议是 1.1吗?不确定啊
许愿二面
#面试复盘##面经##校招##爱奇艺#