面试题分享---面试八股文

小赢科技电话面:

1、linux进程的内存模型

上来就是这么一道题,我直接懵逼了。只能随口一说:代码区、数据区、堆区、栈区、未使用区。再问就是直接回答不知道。

2、对10亿数据进行去重

hash分割,位图,稀疏数组。实现方式各有优劣。

3、redis的ZSet底层数据结构实现原理,跳跃表如何确定插入数据的层级

这个问题,我开始并不知道。但是,我猜死了也不知道,是随机生成的,有个权值概率来决定的,数值越大生成的概率越低。

4、HTTP是如何实现协议的?头和体怎么区分?

我说的是key-value区分的,头部和body位置不一样。不知道具体想问什么。

5、TCP进行连接的时候,linux中需要实现多少种方法?关联的方法有哪些?

只能说,客户端创建socket、建立连接connect、服务端创建socket、绑定bind、 监听listen、接收信息accept、发送send和接收recv,最后关闭close。

遗憾的是,并不满意,我也不知道面试官想要什么。

6、谈谈微服务

没做过,简历上写的也很清楚,经过上一次的腾讯面试,我还特意标注了,没有使用过微服务。结果还是问,说明,这面试官是来闹着玩的。

7、服务治理中做了些什么?

这是我特别想吐槽的地方,我只能说我知道一点概念,服务发现和熔断,以及服务注册和雪崩处理等等都是属于这个的范畴。然后就打算了我,直接问下一个。

8、HTTP的状态有哪些分别代表什么?302 403 404 502

这个问题是唯一值得满心欢喜的,估计是看前面都不满意,问个low点的问题试探一下。

9、创建一个大内存,是堆还是栈?

堆。栈的默认大小只有2M,存储一些函数变量,用完就释放,GC的操作主要是堆里面进行。接着问了为什么这么设计,我表示我从没想过为什么。就连为什么取名为堆栈,我也没想过。

不知道大家注意到没有,全程没有问Go的任何一个问题。我表示,后端的开发都是不问语言的吗?我怕不是面了个假的面试。

深信服电话面试:

这个面试官就让我有点不明觉厉了,开始以为很牛逼,等你自己去寻找答案的时候,才发现,原来面试官连自己问的问题都不知道,说的答案也是错的。也就可以理解,为什么面试官不当场说答案,非要让你自己回去搜索了。

1、链表有环的判断,写伪代码

既然是电话面试,那就不是写伪代码,是说伪代码了。但是,链表不能用for循环吗?我说for和while都可以循环处理链表,我一度以为我傻逼了。

2、GPM调度模型

这个除了背诵,没有别的法子,我说的他的一直说嗯嗯的,标识认同。说明,基本概念理论,大家一个水平线。

3、浏览器的前进后退使用的数据结构

这个,我开始有点懵逼,我说任何数据结构够可以实现,就是麻烦和简单的区别。然后说了栈,发现行不通,他提示说可以用两个栈。嗯,很认同这方法。

4、TCP的三次握手,第一次握手的ack包含哪些信息,什么时候会有Time_Wait

这个问题,让我彻底颠覆这个面试官了。开始我并不知道ack,包含什么,我只知道需要消费掉一个序列号。他说里面包含了ip地址,我不明觉厉了。首先建立连接的第一次握手的,根本不是ACK,而是SYN。其次,ACK是服务端返回给客户端的确认号,根本没有什么IP地址或者其他的什么信息。IP只是在建立连接的开始使用,虽然全程都在,但是握手的时候我没找到说需要IP,更没找到ACK还会含有IP信息。Time_Wait,只有在主动释放连接的时候才会有。

5、栈保存的是什么,堆呢?地址生长方向是什么?为什么这么设计?

栈的空间是由编译器进行开辟和释放,主要存放局部变量和函数参数。栈的地址方向,我不知道,我是推理的,我之前做过单片机,引脚的都是高位往低位处理。堆刚好和栈相反。至于为什么这么设计,这是由于大小端来决定的。开始我不知道,后面看资料才知道的。

6、Go的栈大小是多少?最大值是多少?

这个我是真没注意过,一直以为是2M,结果发现,不是网上说的32M,而是一开始的2K,后面会进行栈分裂,扩展栈的大小,换句话说,栈的大小是会变化的,最新版本的栈大小是从2K-1G变化的。

7、队列实现最优路径

不知道问什么,原来是迷宫地图,唉。

8、两个链表像拉链一样相交,获取这些交点

真不知道,到现在还没搜到答案。一个交点的可以知道,拉链一样的多个交点的,还真不知道。

9、后顺遍历树结构,如何释放树结构的内存信息

这个是我觉得唯一有水平的面试题,前面的后顺遍历已经铺垫好了,后面释放树结构内存也只能按照后顺遍历的方式来释放。

10、Linux的网络拥堵如何排查,过程花多长时间

这个主要是想要花的时间。我表示,时间无法确定,我们也接触不到服务器,无法确定,只能协助。

11、TCP连接,服务端发现丢包之后是怎么处理的?

我说重传。然后问了是立即重传还是做了其他什么处理再重传?经过上面的题,我很确定,这哥们肯定也不知道^_^

12、贪心算法

我就不信有几个人能写出来的,如果不是专业搞算法的。

13、队列如何保证先进先出,栈呢?

数组,索引,完全不知道怎么回答,最后说我回答跑题了。。。我想说,我连出题意图都没搞明白。

14、linux权限控制是如何区分的?

不知道,不同的区域还是?唉。

最后问还有什么问题问他的。我就问了一个问题,你说的这些问题我要全部回答上来才行吗?他说,算法是加分项。然后我回顾了一下,嗯,他问的全是加分项。

平安的面试:

这个面试官问题不多,是针对做过的项目问细节,从细节里面知道你有没参与,有没有真正的知道项目的方方面面。然后就是问了几个Go的考察点,很简单,但是你不一定会的那种。知识点很简单。这是我这四场面试之中最符合我们正常人的流程和问题。唯一在意你处理问题的能力,脑子是不是灵活的。

总结一下:面试能不电话面试就不电话面试,能见面交流就见面交流。毕竟,情急之下,我们还能揍一顿面试官。
针对面试的八股文,我们已经很习惯了。要进大厂,必须背诵那些看起来很高深,但是可能一辈子都用不上的知识点。我们需要知道栈地址为什么从高到低的生长方向吗?面试Go开发,全程没有问Go的相关的。今日头条甚至直接说,我们招聘的是Go岗位,但是不需要有go 的开发经验。但是,我们为了找到一份看似高大上的工作,浪费了大量的时间去背书,忽略了我们业务本身的东西,不知道值不值得。这样子的面试,写简历的意义又在哪里呢?还有那些非要带纸质简历上门面试的公司,这得有多抠门?目前只有平安的这面试官是正常的,针对简历来提问,而不是看着天来问。都是打工的,何苦为难打工的。针对面试的八股文,我们该怎么应对的?太多的知识点无从下手。

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 4个月前 自动加精
棋布
讨论数量: 17

有发offer的吗

4个月前 评论
棋布 (楼主) 4个月前

大部分都不会...

4个月前 评论
棋布 (楼主) 4个月前
小李世界 3个月前
liehua 1个月前

最近在自学go,然后公司没有用到go,所以没有项目经验。 想问下,学了差不多一个月左右了,但是没有头绪?想请假下!

4个月前 评论
惊风破浪 4个月前
棋布 (楼主) 4个月前
小李世界 3个月前

楼主,那个链表那边,找两个的交叉点,或者判断环,都是用的快慢指针,这个你查下,我之前面腾讯问过这个问题

4个月前 评论
XAEA-12 (作者) 4个月前
棋布 (楼主) 4个月前
棋布 (楼主) 4个月前
XAEA-12 (作者) 4个月前

平时不积累,还真的很难通过面试

4个月前 评论

好真实哈哈 ,希望楼主以后的面试也能更新一下

4个月前 评论

head 和body 应该是\r\n\r\n区分?

4个月前 评论

哈哈,深信服我也去面了,和你面的内容差不多 你最后去深信服了吗?

4个月前 评论
棋布

@goodgood 没,面试都没过 :joy:

3个月前 评论

第8题,求链表交点的问题,是《剑指offer》里的原题。

3个月前 评论
Eeaga 2周前
棋布 (楼主) 3个月前
wackery (作者) 1个月前
棋布 (楼主) 1周前

还是有 13题,意图:使用队列实现栈,和用栈实现队列,也是 剑指offer上的,楼主校招时没有刷过题吗?

3个月前 评论
棋布 (楼主) 3个月前
wackery (作者) 1个月前
棋布 (楼主) 1周前

mark一下,最近在准备

3个月前 评论

年底基本没有好的机会。另外你记性怎么那么好,都能记得下来。我每次面试完就能记个大概了,尤其是那种问的特别多的。

2个月前 评论
棋布

@枫云夜 加油,靠运气来征服技术 :joy:

2个月前 评论
棋布

@maxmilia 有的只是记个大概,现场面试我一般会录音录下来,这样也知道自己当时有多挫,😄

2个月前 评论

感觉面试好有趣,虽然我也经常被打脸

2个月前 评论

我感觉大部分问的都是原理层面,就不能拉点缓存穿透那啥之类的题目

2个月前 评论
棋布 (楼主) 1个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!