后端面经【杭州某小厂】

130 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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模式

Docker

副本镜像挂载位置