pyer零基础字节跳动客户端面试

作者:WhaleKlng

链接:https://www.nowcoder.com/discuss/500893

来源:牛客网

说在前面,许愿字节offer,我太爱互联网公司了!

0908继续一面!冲冲冲!

9.06一面

一面感觉真的好,小哥哥人很帅很暖哈哈哈

首先自我介绍,大概总结了一下简历,自我介绍方面,我看了b站的一个视频,专门做简短的自我介绍的。

问的问题:

1 osi七层模型都是什么

我就背了一下五层模型,哈哈,然后展开说了一下各个层有的网络协议及端口和物理设备

2 ip数据包的格式

这里我没太清楚,哈哈只记住了http包的格式

就说了一下可能会包含的字段 如版本 格式化 网络地址 子网掩码 保留字段 校验和 切片用到的序列号emmm怎么说呢,我记住了这些字段没记住他们具体是怎么排列的

今天晚上要整理一下所有的报文格式了哈哈

3 常见状态码

我总结了一下200系 300系 400系 500系各自是什么意思 然后展开讲了几个常用的(毕竟web狗,当时写接口的时候还特意看过这些呢),最后其实状态码可以自己随便起的,只是大家都按照规矩来所以我们就有背的东西了

4 网卡了,说一下刚刚的视频用的什么协议?

答用的是udp协议 哈哈哈 这个懂的都懂 我们不可能说用tcp,丢了一个包下面就都不干活了吧。这里其实严格来讲不是udp。我一会查一下是什么

面试官小哥哥说是 一种udp再包装的协议

5 说一下你用到的数据库吧

我用到的数据库分两种 关系型和非关系型

关系型里面的话 用过mysql和sqlite这两个

然后展开开讲了一些mysql那一套,事务,隔离性,引擎区别,还有mysql默认用的什么。sqlite的话是一个文件性数据库,有文件锁,我在实习阶段还特意克服过这个文件锁改了sqlite源码重编译了一下!

非关系型的就是redis了,说到了数据类型五大类加个谷歌地图,还有redis的部署方式 持久化方式,怎么操作怎么修改(其实我们的数据库啥的,都是先记下操作日志,然后后台有一个线程专门把操作日志翻译出来持久化磁盘内存的,所有持久化有两个角度,一是荡数据,二是个git一样荡操作日志)然后讲了一下redis的应用场景嘛 还有可能出现的问题和解决及避免方法。缓存雪崩,缓存穿透这些。

6 redis是不是多线程的

emmmredis现在是多线程的了,但是那是去年9月份的事了,在哪之前都是单线程。原因很简单,我们写的程序之所以用多线程,无非是让cpu这个博尔特多干点活支援一下硬盘(机械硬盘)这个老寒腿!因为计算机的速度是这样的cpu大于cache大于内存条大于硬盘。redis是工作在内存中的,他的速度很快了,快到啥样呢?快到了操作系统为多线程保留上下文,恢复现场都算慢了,所以就用了单线程!

那问什么现在又多线程了呢?因为现在硬件设备高级了,cpu太猛了,内存条也不够强了,所以就多线程了。确实是这样 懂的都懂 amd yes!

7讲一下进程通信

五种嘛及应用场景和一些底层实现,哈哈背哪五个词肯定是不行的

这里我展开讲了一下我是怎么进程通信的

先是用文件通信,然后是用数据库通信 然后是用单例模式通讯,然后是用redis通信哈哈,说到底还是菜,不然怎么会用redis进行进程通信呢

8数据结构这边没怎么问,就问了一下py里面的is和==是怎么实现的,然后还有修饰器哈哈修饰器的应用场景嘛,过滤黑名单等这些其实我们说的中间件都是修饰器

9垃圾回收机制 jvm这些我说我不太会,我是真不会,没做过java,一直都做py了。说到了引用计数这些还有内存泄露(单例模式中一个变量的引用被占着,那么他所指向的变量是不会释放的,尽管他用不到了)

10做了个旋转字符串的题目面试官见我博客上写了一些题就出了个简单的。殊不知我其实博客上面都是leetcode搬运工呀

反问环节 ?

我这段时间应该怎么学,抖音客户端的主要技术栈!(因为我这边主要是做pyweb的,一直想问问他们是怎么写样式的,怎么去做前端的)

然后一面过了!谢谢小哥!!!基本上就是问题很直接,剩下的都是自己展开讲!

许愿字节offer!冲冲冲加油呀得敏!!!😺😺😺

0908 二面挂了

二面开始就感觉面试怪怪的,怪到了我最后都没有反问环节,反手一个挂电话。难顶!面完了本以为有三面,结果等了一会说没三面了!索性被其他部门捞起来了!!!

秋招真的是磨人心态!

最后更新于