小米日常实习
求OC求OC
已oc
9.8一面
- 自我介绍
- 设计一个LRU,口述数据结构与get,put等操作流程,以及容量满了怎么删除
- Redis有什么好处,怎么使用
- Java内存模型(不知道问的是JMM还是JVM内存结构那种,就都说了一遍)
- 什么是内存溢出、内存泄露?
- 如果OOM了怎么办?怎么防止OOM?
- 类加载机制
- 双亲委派模型
- 怎么自己写一个类加载器
- 数据库的范式了解吗?
- 事务的四大特性ACID
- 询问项目,描述用户访问全流程
- Redis和MySQL的缓存一致性问题,项目中怎么解决的
- cache aside pattern有什么问题?怎么解决?
- Netty相关,NIO与BIO区别,IO多路复用epoll
- Spring中IOC相关,IOC对程序开发有什么好处?控制反转。。。继续追问
- 算法题:填充螺旋数组
- 追问:有什么优化空间吗?
- 如果改变填充的策略,该算法如何复用,用哪种设计模式?
- 螺旋矩阵有什么实际可以使用的场景吗?
- 情景题:如果和小组成员意见不同,你会怎么解决?
- 反问环节
1小时10分钟
9.14二面
- 项目中Redis怎么用的?
- Redis为什么快?有没有想过这个问题?
- Redis有哪些数据结构,举个例子,为什么这个数据结构快?
- Redis的Set集合,介绍一下?使用Set是为了它的什么特性?
- Set底层的数据结构是什么?Zset的数据结构是什么?
- 跳表的特性是什么?为什么要用跳表?为什么不用二叉树做底层实现?
- Redis的缓存击穿是什么?你项目中为什么要解决这个问题?你的项目在多大的并发量时可能造成缓存击穿?
- 用到RocketMQ的什么作用?为什么要引入?
- 你知道引入MQ后会为系统带来什么新的问题吗?
- 你的项目中是怎么解决的分布式事务的问题的?从Redis到MQ到MySQL?
- Redis的缓存一致性问题在项目中是怎么解决的?
- MySQL的事务隔离级别介绍一下?
- 为什么要有可重复读隔离级别?
- MySQL中是怎么实现的可重复读?
- 你知道Netty用的什么底层实现吗?
- NIO和BIO有什么区别?
- IO多路复用是什么?怎么实现的?说一下epoll?
- Zookeeper在你的项目中是怎么用的?
- 你知道Zookeeper能实现分布式锁吗?在什么时候会选择Zookeeper实现,什么时候用Redis实现?
- 算法题:反转链表
- 反问
50分钟。