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


    小赢科技电话面:
    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 的开发经验。但是,我们为了找到一份看似高大上的工作,浪费了大量的时间去背书,忽略了我们业务本身的东西,不知道值不值得。这样子的面试,写简历的意义又在哪里呢?还有那些非要带纸质简历上门面试的公司,这得有多抠门?目前只有平安的这面试官是正常的,针对简历来提问,而不是看着天来问。都是打工的,何苦为难打工的。针对面试的八股文,我们该怎么应对的?太多的知识点无从下手。

  • 相关阅读:
    springboot简单集成Security配置
    C++ -- 学习系列 std::deque 的原理与使用
    2022赣政杯 Writeup
    HarmonyOS—UI开发性能提升的推荐方法
    如果面试官让你设计美团外卖的分库分表架构,就该这么说!
    拓端tecdat|R语言提取时间序列的周期性成分应用EMD,小波滤波器,Baxter过滤器等
    拥抱数字正义时代,看AIGC如何驱动法律变革
    达梦数据库备份策略
    MATLAB 嵌套switch语句
    【无标题】
  • 原文地址:https://blog.csdn.net/m0_54861649/article/details/126390696