副问题[/!--empirenews.page--]
笔者坐标上海,做技能开拓,之前有几个月的时刻,根基上都是在口试中渡过的。我求职的地位是 Linux 处事器开拓,最倾向的地位是处事器开拓主程或技能司理。在那几个月的求职进程中,我口试了 30+ 家公司,包罗腾讯、百度、阿里的蚂蚁金服和国际付出宝部分、饿了么、爱奇艺、360、携程网、京东、华为、bilibili 与 UCLOUD 等。在这个进程中,思索了一些口试相干的题目,总结出这篇文章,但愿给读者一些开导。
总结下来,技能口试大抵有三种气象,下边逐一来讲讲。
一、考查数据布局和算法为主
IT 公司一样平常城市考查数据布局和算法手段,个中以百度与爱奇艺等为代表,口试官一样平常是先简朴地相识你之前的事变经验和项目履历,然后就直接出算法和数据布局的标题,详细涉及到以下内容:
- 快速排序。考查的处所包罗算法步调、均匀算法伟大度、最好和最坏的气象,有人说校招要把算法写出来,我这里是社招,以是一样平常描写一下算法进程即可。
- 二分查找法。一样平常口试官会要求口试者把算法写出来,可能先团结一个详细场景来提问,必要你遐想到要行使该算法,好比求一个数的平方根,接着要你把它详细实现。
- 链表。常见的口试题有要求你写出从一个链表中删除一个节点的算法、单链表倒转、两个链表找相交的部门等,一样平常必要完全无误地写出来。
- 实现一些基本的函数。譬喻 strcpy、memcpy、memmov 与 atoi 这些函数,口试官会要求你用本身的领略和思绪去实现。同样,这些一样平常也必要完全无误地写出来,而且要担保高效,好比你的实现中有动态分派堆内存,那么这道标题就算答错。
链表和实现基本函数的要害点一样平常在于考查你的代码气魄威风凛凛、对界线前提的处理赏罚,好比判定指针是否为空,万万不要存心不思量这种气象,纵然你知道也不可,只要你不写,一样平常口试官就以为你的思绪不周详,容错率低;再好比,单链表的倒转,最后的返回值必定是倒转后的链表头结点,这样才气引用一个链表,这些都是口试官想思量的重点。
- 哈希表。对哈希表的细节要求很高,好比哈希表的斗嘴检测、哈希函数常用实现、算法伟大度;好比百度二面就让我写一个哈希表插入元素算法,元素范例是恣意范例。
- AVL 树与 B 树。考查观念与细节,好比会问 MySQL 数据库索引的实现道理,根基上就便是在问你 B 树。
- 红黑树。这个根基上是必问的数据布局,包罗红黑树的观念、均匀算法伟大度、最好最坏环境下的算法伟大度、阁下旋转与颜色调动。口试官常见的套路有:你认识 C++ 的 stl 吗?你说认识,ok,stl 的 map 用过吧?用过,ok,那 map 是怎样实现的?红黑树,ok,那什么是红黑树?这样提问,红黑树就开始了。Java 的也相同。
二、考查操纵体系道理等基本技能
这一种以饿了么、bilibli、喜马拉雅、360 与携程等为代表,首要分身算法与数据布局,但重点放在其余开拓技能,好比操纵体系道理、收集协议细节与详细的开拓库源码等内容。
基本的 C++ 题目
以 C++ 说话为例,这一类常见的题目有:
- C++ 的担任系统中 virtual 要害字的浸染,如担任相关中析构函数为什么要阐明成 virtual 函数,假如不阐明为 virtual 会有什么影响、再涉及到父子类时结构与析构函数的执行次序、多重担任时类的成员列表在地点空间的分列;
- static 要害字的浸染,static_cast、reinterpret_cast 与 dynamic_cast 等几个转换符的行使场景;
- 问得最多的就是虚表的机关,尤其是菱形担任,即 B 和 C 担任 A,D 担任 B 和 C,每个工具的空间布局漫衍,好比问 D 有几份虚表,D 中 B 和 C 的成员空间排布。
其它,假如你应聘的地位行使 C++ 开拓,许多公司会问你一些 C++ 11 的对象,可能问 boost 库,根基上都一样。这个你用过就用过,没有效过就说没用过不要装 X,常见的 C++ 11 必要把握的一些技能库我也罗列一下吧:
- auto 要害字
- for-each 轮回
- 右值及移动结构函数
- std::forward、std::move
- stl 容器新增的 emplace_back() 要领、std::thread 库、std::chrono 库
- 智能指针系列 std::shared_ptr、std::unique_ptr、std::weak_ptr,智能指针的实现道理必然要知道,最好是本身实现过
- 线程库 std::thread
- 线程同步技能库 std::mutex、std::condition_variable、std::lock_guard 等
- lamda 表达式(Java 中此刻也经常考查 lamda 表达式的浸染)
- std::bind、std::function 库
收集通讯题目
考查对收集协议的领略和把握措施,好比 TCP/IP 协议栈的层级相关,三次握手和四次挥手的细节,留意我说的是细节,好比 CLOSE_WAIT 和 TIME_WAIT 状态。bilibili 问了这样一个题目,你可以感觉一下:
A 与 B 成立了正常毗连后,从未彼此发过数据,这个时辰 B 溘然呆板重启,问 A 此时处于 TCP 什么状态?怎样消除处事器措施中的这个状态?
再摆列其余一些常见题目:
- 万得问过流量拥塞和节制机制
- 腾讯问过 TCP 和 IP 包头常见字段有哪些
- 东方财产网问了阻塞和非阻塞 socket 在 send、recv 函数上的举动示意
- 异步 connect 函数的写法
- select 函数的用法
- epoll 与 select 的区别,根基上只要问到 epoll,必问 epoll 的程度模式和边沿模式的区别
- 一些 socket 选项的用法,nagle、keepalive、linger 等选项的区别
- TCP 与 UDP 的区别和合用场景
- 通讯协议怎样计划停止粘包
- HTTP 协议的 get 和 post 要领的区别,问得较量深的会让你画出 HTTP 协议的名目
- 也许会问到 Windows 完成端口模子(IOCP)
总之,收集通讯题目能搞得多清晰就搞多清晰,最最少把 TCP 应用层各类 socket API 的用法细节搞清晰。
操纵体系道理
(编辑:河北网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|