订阅收费吗?
点赞 1

相关推荐

昨天 10:57
西南交通大学 C++
这次面试是压力面,一点答不上来,可能是我一个月都在看go,边看边面,cpp的八股忘球了,除了cpp这块,别的也算基础吧,一直够不到他的点上,再或许是因为面试的前一分钟收到了携程的英语测评,哈哈哈,这种爽和紧张交加的感觉谁懂),感觉是对着effective cpp这本书问的,打算看看里面的笔记。已挂(很多都没回答好,面试官压力感太强了)深度八股盛宴平时都用cpp吗?(这里如果说用go and cpp也不至于死这么惨)1.说说static关键字的作用(这里没对比c和cpp,导致的追问环节一  局部static变量:生命周期从第一次执行到程序结束,只初始化一次,函数退出不销毁二 全局static变量/函数:限制作用域在当前文件(不暴露给其他编译单元)三 类static成员变量:被所有类对象共享,类外初始化四 类static函数:不依赖具体对象,只能访问static成员)2.cpp的闭包(没听过,说只看过go的闭包,后面说想问lambda,可以捕获外部变量(值或者引用),生成一个匿名函数对象,捕获方式有[=] [&] [this] [a,&b])3.cpp的lambda了解吗?说说lambada和普通函数的区别(接2问的,就说在算法题的cmp函数里面用过,使语法简洁,可读性高。“对比一下go的闭包是语法级别的,cpp闭包本质是编译器生成的仿函数”Lambda是一个带状态的函数对象,编译器为他生成一个匿名类型,可以捕获状态,可以内联,普通函数是无状态的,而且拥有唯一的函数签名,他们定义位置也不一样(普通是全局和类内,lambda是局部和全局))4.说说extern C关键字?(说成extern,不知道extern C)extern "C" {    #include "some_c_lib.h"}用于c/cpp混合编程,保证符号可识别。---此刻脑子已经麻了,太紧张了5.没了解过extern c,就说说cpp左值和右值的区别(这里把右值引用&&说成右值改左,悲,std::move左改右没说错。”左:有内存地址,可多次使用、可出现在赋值号左边,右:临时的、无地址、通常是字面量或函数返回的临时对象,判断标准就是是否能用&取址“)6.说说完美转发(这里没问题,保持参数的属性不变(即左右值),传递给下一个函数,万能引用T&&,说了std::forward,”没有完美转发,右值传两层就是左值,失去移动语义“)项目8.说说项目整个流程呢?(这里很深入很仔细地说,导致有点口齿不清,或者说浪费太多时间了)9.webserver应用在七层网络架构哪一层?(应用层)情景题10.描述真实场景,公网一台服务器是怎么准确找到局域网里某一台设备上来的?比如你的手机。也就是说,你的手机把一个请求发送到公网服务器,然后公网服务器处理完之后,把处理完的消息返回给你的手机?先说说怎么找到服务器,然后服务器怎么找到你?(以为是我手机输入baidu.com然后服务器找到我,大概说了 一下请求怎么到公网服务器)没这么简单,请说出更底层的协议是怎么找到的?比如为什么找到的是你的手机而不是别人?或者可以先不说复杂局域网,先回答我局域网的互相交互?(arp协议,ip->mac地址,交换机/路由器根据mac转发)请拓展一下,拓展到外网到局域网?最关键的点就是说怎么被标识?(不懂,被路由器的公网 IP + 一个临时端口号标识的)局域网的手机在外网看来是怎么银行的,怎么保证是发到这个手机,而不是所有手机?(不懂,当时扯到了tcp四元组,这个思路没问题,答案就是内网ip,内网端口,公网ip,公网端口)你可以按照你的想法去分析一下?它能代表这个局域网对外通信,然后官网某一个服务器把消息投递过来,根据唯一的ip找回来,对吧?(这里回答的NAT协议)那是怎么标识的?(答的路由表,有mac地址,实际是nat表)(思路:手机首先是 没有公网ip的,使用nat技术,维护一张映射表(内网ip端口<->公网临时端口)不会错发是因为nat表的映射是一对一的,除非端口冲突或者没有nat穿透(这里必然被追问穿透,我是没讲这里))11.mac地址是哪一层?(数据链路层)12.所以你前面跳过了很多层对吗?(数据链路层到xx层一路解包,这个过程有点忘记了,因为八股不常见,磕磕绊绊)(思路:物理层01比特流->数据链路层(检查mac地址)- >(网络层检查dest ip)->传输层(端口号)->应用层)13.上一面udp和tcp挖完了,你听说过quic协议吗?(在应用层使udp可靠,http3使用,这里想扯到抖音直播表达被打断)别发散(说了减少对头阻塞,和快速握手)quic对比tcp的优点?不能对比udp,只能说除了udp对比tcp的优点外的优点(1.应用层保证了消息可达,后面网络延迟,他不问了)(思路:quic基于udp,内建了加密和多路复用,0-rtt直连- 无队头阻塞- 连接迁移(Connection ID)- 用户态实现,易迭代)14.epoll里面的reactor和proactor的对比,区别?(proactor是异步,是内核直接去处理缓冲区的数据,而不是依靠主线程io,目前nginx就是利用多进程去模拟proactor,proactor是我昨晚,你来取结果)说说同步和异步的对比?(同步处理以来非阻塞队列,异步无需考虑,内核态处理)15.遍历二维数组,按行和按列,那个快(说的内存连续)但是内存不是随机访问吗?(虚拟内存部分)给我说清楚访问过程(扯了vector是怎么被访问的,说的有点磕磕绊绊,大概size是怎么二倍增长)虚拟内存为什么存在?(扯物理内存和os怎么一步步到虚拟内存,为了解决内存碎片化的问题,总之就是块不连续)那物理内存是怎么映射到物理内存(linux就是四级页表,为什么有页表,为什么要有页框,四级页表如何逐级映射,给我说死了)(思路:内存连续还有空间局部性,同一行cache line被连续访问,缺页次数少,命中率高虚拟内存:隔离进程地址,让程序认为有连续内存,允许物理内存不连续。映射:四段索引,页目录->页表->页框->物理地址)16.中间件主要用的mysql?(目前redis和mysql)算法找旋转数组的最小值,说出思路开撕,二分秒了,怎么二分,画图解说,然后假设是连续的数组,加入没有旋转,代码怎么跑?(诶,我真的就死这里了)后面自己找出了bug,说很好奇,为什么自己越界访问,飞书没报错。引出1717.什么会导致cpp未定义行为()类似hr面的问题18.你是人工智能专业,为什么没有人工智能?前10%是什么水平?19.怎么用的ai(角色+上下文背景+todolist,说我太啰嗦,还可以总结)20.评价自己(这里踩雷了,说自己可靠加神搓搓)优点就这一个?缺点就这一个?(被为难死了)21.你的同学怎么评价你?(神搓搓,能干事但干的不是特别好)建议体系化表达,其余看邮件(那就是挂了)这里也踩雷了,问到了一些面试官隐私的问题。目前这个部门在做一些c端的产品。后续心已飞去携程,让hr催,hr催一次,说要考虑留我,催hr两次,得知已挂。简历被锁,清明后释放。秋招见,字节
面试中,你被问过哪些奇葩...
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务