携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第24天,点击查看活动详情
记录一次面经,因为体验并不是很好,有点不想公开公司名字。看到的jym可以当作一次测试吧。
计网
TCP三握四挥手
HTTPS过程
操作系统
进程线程的区别,介绍一下进程
上下文切换的过程,其中一定会保存上文吗
进程的五状态模型
Java语言
Object的方法有哪些
线程池的参数有哪些
MySQL
隔离级别有哪些
- 未提交读(Read Uncommited):在一个事务提交之前,它的执行结果对其它事务也是可见的。会导致脏读、不可重复读、幻读;
- 提交读(Read Commited):一个事务只能看见已经提交的事务所作的改变。可避免脏读问题;
- 可重复读(Repeatable Read):可以确保同一个事务在多次读取同样的数据时得到相同的结果。(MySQL的默认隔离级别)。可避免不可重复读;
- 可串行化(Serializable):强制事务串行执行,使之不可能相互冲突,从而解决幻读问题。可能导致大量的超时现象和锁竞争,实际很少使用。
Redis
有哪些数据结构
详细介绍一下SDS
SDS结构:
- len 记录长度
- alloc 分配的空间长度,通过alloc-len计算剩余大小,不足就自动扩容
- flags 标识不同类型,sdshdr5 8 16 32 64这样做能节省内存
- buf[]字符数组,也能存二进制数据
SDS的长度不是固定的。
持久化AOF和RDB,AOF存的文件位置在哪?RDB默认几秒进行一次?
可能是想让我回答存在磁盘上,但是我第一反应绝对位置在磁盘的哪个地方。
AOF持久化会默认在 /usr/local/bin/ 目录下生成名字为appendonly.aof的持久化文件。
RDB的默认配置
save 900 1
save 300 10
save 60 10000
值得一提的是,这里的save是bgsave,是会创建子进程来进行生成RDB文件。
Redis线程模型是怎么样的,有哪些线程?
详细介绍一下跳表
跳表的最高层级
32
Redis为什么那么快
可能要从三方面回答:
- 内存
- 数据结构
- Reactor模式