首页 > 数据库 > 数据库开发技术 > 不愧是抖音电商,问的真细。

这是阿秀的第「305」篇原创
小伙伴们大家好,我是阿秀。
前段时间分享了一位师弟的面经,他在提前批顺利拿到字节跳动抖音部门电商部门的offer,算是我知道的为数不多能在提前批阶段斩获offer的应届生了,其中编程语言和算法类考察面经详见该篇文章:抖音电商,提前批offer!。
抖音电商面试一共是三轮技术面+一轮HR面,一共超过 40 个问题,我系统整理了一遍,并将其中一些比较不错的问题,摘录到了自己开发的网站上。
InterviewGuide大厂面试真题网站:https://top.interviewguide.cn
今天再来分享一下一些关于计算机基础知识问题考察,不得不说,电商部门考察的确实是细,很多问题都深挖了,明显是那种需要理解才能讲出来的东西,而不是死记硬背八股文。
以下是这位师弟的面经以及部分参考答案:
1、问:用户态和内核态了解吗?为什么要有这两种?
答:第一个就把我问懵了,只知道有这两个态,具体还真不清楚,最后随便扯了一点CPU权限等级。
阿秀补充:
为什么要有这两态?是因为需要限制不同的程序之间的访问能力,防止他们获取别的程序的内存数据,或者获取外围设备的数据,并发送到网络,CPU划分出两个权限等级 – 用户态和内核态。
2、问:既然不清楚为什么要有这两态,那说一下这两种的区别吧?
答:内核态可以访问内存中的全部数据,用户态无法直接访问外围设备。
3、问:说一下你了解的进程调度算法?知道哪几种?
答:只记得先来先服务、最短剩余时间优先、时间片轮转和多级反馈队列了。
阿秀补充:
还有短作业优先、优先级调度这两种
4、问:那说一下多级反馈队列是什么?用于什么情况下的?
答:记得是需要连续执行多个时间片的进程考虑才有的多级反馈队列来着。
阿秀补充:
假如一个进程需要执行 100 个时间片,如果采用时间片轮转调度算法,那么需要交换 100 次。
多级队列是为这种需要连续执行多个时间片的进程考虑,它设置了多个队列,每个队列时间片大小都不同,例如 1,2,4,8,…。进程在第一个队列没执行完,就会被移到下一个队列。
这种方式下,之前的进程只需要交换 7 次。每个队列优先权也不同,最上面的优先权最高。因此只有上一个队列没有进程在排队,才能调度当前队列上的进程。
可以将这种调度算法看成是时间片轮转调度算法和优先级调度算法的结合。
5、问:页表知道是什么吗?
答:一种数据结构,可以将虚拟地址映射到物理地址,也就是在分段和分页机制下,CPU会将虚拟地址转换为线性地址,然后再将线性地址转换为物理地址。
6、问:描述符是什么?如何创建的?
答:这个真把我问住了,真不清楚描述符是什么。。。。
阿秀补充:
定义
在操作系统中,描述符是一种数据结构,用于表示和管理文件、设备、进程等资源。每个描述符都包含了资源的一些属性和操作方法。
创建方式
描述符的创建通常是通过系统调用来完成,具体的操作系统和编程语言可能有所不同。一般而言,创建描述符的步骤如下:
需要注意的是,描述符是操作系统内部使用的一种抽象,通常不直接暴露给应用程序。应用程序可以通过高级的接口(例如文件操作、网络操作等)来间接操作资源,而无需直接处理描述符。
7、问:键盘敲击发生的中断是如何传递到操作系统中的?
答:只知道是通过处理器传过去的。
阿秀补充:
当我们在敲击键盘的同时就会产生中断,当硬盘读写完数据之后也会产生中断,所以,我们需要知道,中断是由硬件设备产生的,而它们从物理上说就是电信号。
之后,它们通过中断控制器发送给CPU,接着CPU判断收到的中断来自于哪个硬件设备(这定义在内核中)。
最后,由CPU发送给内核,有内核处理中断。下面这张图显示了中断处理的流程:
这里也附加上异常的概念以及中断和异常的区别
异常
我们在学习《计算机组成原理》的时候会知道两个概念,CPU处理程序的时候一旦程序不在内存中,会产生缺页异常;当运行除法程序时,当除数为0时,又会产生除0异常。
所以,大家也需要记住的是,异常是由CPU产生的,同时,它会发送给内核,要求内核处理这些异常,下面这张图显示了异常处理的流程:
中断和异常的相同点
中断和异常的不同点
1、问:HTTP运行在哪个端口号上?HTTPS呢?
答:HTTP我记得是80端口,HTTPS不记得了。
阿秀补充:HTTPS 的端口号是 443
2、问:问几个状态码吧,4XX和5XX代表是什么错误?
答:4XX是Client Error(客户端错误状态码),5XX是Server Error(服务器错误状态码)
3、问:403和503是什么错误?
答:403还记得,应该是服务被拒绝的意思,也就是 Forbidden,503不记得了
阿秀补充:503 Service Unavailable :服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
4、问:HTTP 1.0 / 1.1 / 2 / 3的区别?
答:记不清了,胡乱说了说,HTTP 1.0无状态、无连接,HTTP 1.1支持长连接,其余不清楚了。
阿秀补充:
5、问:在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?
答:老八股文了,不说了。
阿秀补充
主要会经历以下步骤
6、问:TCP保证可靠传输的方式有哪些?
答:确认和重传、流量控制、拥塞控制等。
阿秀补充:
7、问:说一下流量控制的原因
答:老八股文了
1、问:了解过哪些数据库?除了MySQL和Redis,再说一种你比较了解的数据库?
答:说了一点MongoDB,它是文档型数据库。
阿秀补充:
(1) MySQL是传统的关系型数据库, MongoDB则是非关系型数据库。
(2) MongoDB以BSON结构进行存储,在存储海量数据方面有着很明显的优势。
(3)与传统关系型数据库相比, NoSQL有着非常显著的性能和扩展性优势。
(4)与传统的关系型数据库(如与 MySQL)相比, MongoDB的优点如下。
2、问:事务的隔离级别有哪些?
答:未提交读、提交读、 重复读、可串行化读
3、问:什么是未提交读,可能会导致哪些问题?
答:老八股了,可以自己去查、
阿秀补充:
未提交读:事务中发生了修改,即使没有提交,其他事务也是可见的,比如对于一个数A原来50修改为100,但是我还没有提交修改,另一个事务看到这个修改,而这个时候原事务发生了回滚,这时候A还是50,但是另一个事务看到的A是100.可能会导致脏读、幻读或不可重复读
4、问:知道哪些日志文件?
答:只知道redo log和undo log。。。
阿秀补充:
5、问:左外连接和右外连接是什么意思?有什么区别
答:忽然就问了一个SQL的问题,一时半会还没反应过来。。。很简单。
阿秀补充
左外连接: 左边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。右外连接:右边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。
1、问:用过Redis吗?怎么学习Redis的?
答:用过,主要是通过视频学习和一些书籍来了解学习,还有就是一些实践了,看过《Redis设计与实现》和一些中科院老师写的Redis网络专栏。
2、问:Redis 内存淘汰机制是什么?
答:两种,定期删除和惰性删除方案。
3、问:定期和惰性一定能保证删除数据吗?
答:不一定,当内存过高时会采用内存淘汰策略了。。。具体的策略忘记了。
阿秀补充:
在Redis.conf中有一行配置:maxmemory-policy volatile-lru,一共有六种方案:
该配置就是配内存淘汰策略的,主要有以下六种方案:
4、问:缓存雪崩、缓存穿透有什么区别?缓存预热、缓存更新呢?
答:老八股文了,不说了
阿秀补充:
内容过多,以前就收录到网站上了,自己去看吧,链接:https://top.interviewguide.cn/issue/234
5、问:Redis的数据结构有哪几种?
答:经典八股文问题,不啰嗦了。
阿秀补充
以前就收录过,可以自己去看,链接:https://top.interviewguide.cn/issue/220
这里也给自己的知识星球,也就是学习圈打个广告,坚持这件事情已经快2 年时间了。
前年和去年分享的很多校招上岸经验也都是出自阿秀的学习圈中的往届上岸人,阿秀的学习圈中置顶帖的「知识图谱」和「精华区」(如下图)中有很多计算机大学本科&研究生学习以及校招的内容和问题,多看看这些能够帮你走的更稳、更顺、更平坦。
后续也会在自己组建的阿秀的学习圈中分享一些社招跳槽找工作的经验,都是自己一路走过来的经验。
星球里的精华区、知识图谱以及资源沉淀
一个人踽踽独行不如结伴而行,以后会继续在星球笔耕不辍,输出一些有价值的内容
。
欢迎点击左下角阅读原文详细了解,这可能是你求职路上性价比最高的一次点击!
前段时间自己也开发了一个互联网大厂真题面试解析网站,比如我想查一下行业为互联网,公司为字节跳动,考察岗位为后端,考察时间为最近一年之类的面试题有哪些?

《InterviewGuide》大厂面试真题网站:https://top.interviewguide.cn/
已经有不少小伙伴遇到原题了,具体可以看下链接:
后面还会继续开发其余星球用户专属功能,比如模拟面试以及题目收藏、甚至是真题下载打印功能等。
原文作者:拓跋阿秀;如有侵权,请联系管理员删除。