面试官很友好,自己太菜了。意识到了自己对计算机的认知有多么浅薄 orz
一共75分钟,讲的口干舌燥
不知道哪些是答得不对或者不全的地方,也请懂的同学不要藏着掖着,可以在讨论区聊聊呀~
一个小厂面试难度竟然已经如此可怕了
感觉分布式已经是后端的必要技术栈了。卷成这样也是离谱。也许该好好考虑考虑 #互联网没坑了,还能去哪里# 这个话题了。
等我毕业了,银行等国企的坑也该填满了,感觉自己每多上一天学,就业就恶化一天。鉴定为:寄
回想起20年字节的实习门槛,回想起那时某些双非本科一个班能秋招4个进字节。努力在时代面前不值一提~
项目
HTTP/TCP的相关知识:三次握手,Long connection的含义、半连接的作用
socket操作,socket操作与三次握手之间的对应关系。
Session、Cookie、Token
Mysql为什么选择B+树(开始吟唱),答了支持范围查询(不能用哈希)+减少IO次数(B树、二叉树、红黑树、跳表都有更多次IO的问题)
Mysql有哪些优化措施:“先说这是一个很大的话题”,答了建立恰当的索引(以及避免索引失效)、低NF以空间换时间、改用适合业务场景的其他执行引擎(MyIASM, RocksDB)、分库分表(水平垂直分库分表)、建立主从集群(讲了一主多从、主从分离)。
操作系统:Page Cache的作用,操作系统进程的状态(答得不好,状态的名称记不太清了)、操作系统的进程调度算法(没看过,看过也忘了,寄)。
用过哪些命令。
磁盘IO有哪些优化?只想到了减少访存次数+顺序读写,面试官说之前提到的Cache也可以(傻了,竟然没想到),讲讲磁盘的Cache(说了mmap这种direct IO和缓冲IO,感觉说的不太好,可能没扣题)。
内存满了之后怎么办?答了通过页面淘汰算法淘汰页面,比如FIFO, LRU, LFU。
Go:协程切换VS线程切换,讲讲协程切换的细节(说了恢复上下文,包括保存的寄存器信息和pc指针,懂的同学可以讲讲)
容器:讲了讲docker的大体实现,docker是做什么的。
知道K8S这种容器编排吗?是做什么的?不会K8S,直接寄,听面试官大概讲了讲K8S用于万规模以
使用BiliBili手机客户端缓存功能下载的视频中,视频.m4s文件和音频的.m4s文件是分离的。此外,文件命名是供机器阅读的随机数字id,真正的视频名称,作者信息等被记录在json文件中不便于阅读。本脚本用于:
本脚本依赖于ffmpeg,从 https://ffmpeg.org/download.html 获取您所在平台的版本。下载解压后,记录其中的ffmpeg.exe(或者针对linux下的可执行文件./ffmepg) 的绝对路径。
将手机连接到电脑,复制 手机存储\Android\data\tv.danmaku.bili\download文件夹到本地路径 x:\download
clone本项目,新建python环境后,pip install -r requirements.txt
输入命令
python main.py --input_path "x:\download" --output_path "转换后的视频输出目录" --ffmpeg_path "第一步得到的ffmpeg可执行文件目录"
默认转换后的视频将会存储在output_path指定的路径,命名方式为:
"{owner_id}@{title}@{pid}@{target_title}@{owner_name}@{bvid}@{vid}.mp4"
其中owner_id为b站用户id,title为视频标题,pid为当前视频的分p,target_title为小分p标题,owner_name为缓存时的用户昵称(可能已经更改),bvid为视频的bv号,vid为在原始缓存目录下的视频目录名称。
命令行中,所有出现的路径均需要为绝对路径。