图片 1

前言

由此10月到十二月这么些月的鼎力,九风有幸拿到了趋势科技、Motorola、美团、知乎互娱的offer,在此以前看了许多享受的面经,是时候该回馈了一波。

先介绍下九风的骨干气象:在师资的创业集团待过一年多(没有课就去商店),做过C++图像处理、java后台开发、移动web开发,由于投机相比较水,学的东西都不深,在十一月首离开店铺后就猛补基础知识点。

Memcached 存储命令

Memcached set 命令

Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中。

倘使set的key已经存在,该命令能够革新该key所对应的本来的数据,也就是兑现革新的效果。

语法:

set 命令的基本语法格式如下:

set key flags exptime bytes [noreply] value

参数表达如下:

  • key:键值 key-value 结构中的 key,用于查找缓存值。
  • flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外音信。
  • exptime:在缓存中保存键值对的时日长短(以秒为单位,0 表示永远)
  • bytes:在缓存中储存的字节数
  • noreply(可选): 该参数告知服务器不需要回到数据
  • value:存储的值(始终位于第二行)(可一贯领会为key-value结构中的value)

出口音信表达:

  • STORED:保存成功后输出。
  • ERROR:在维持失败后输出。

Memcached add 命令

Memcached add 命令用于将 value(数据值) 存储在指定的 key(键) 中。

万一 add 的 key 已经存在,则不会更新数据(过期的 key
会更新),以前的值将依旧维持同等,并且您将拿到响应

出口信息认证:

  • STORED:保存成功后输出。
  • NOT_STORED :在维系失败后输出。

Memcached replace 命令

Memcached replace 命令用于替换已存在的 key(键) 的 value(数据值)。

万一 key 不存在,则替换战败,并且您将收获响应 NOT_STORED。

Memcached append 命令

Memcached append 命令用于向已存在 key(键) 的 value(数据值) 前边扩展数据

Memcached prepend 命令

Memcached prepend 命令用于向已存在 key(键) 的 value(数据值) 后边追加数据

出口信息认证:

  • STORED:保存成功后输出。
  • NOT_STORED:该键在 Memcached 上不设有。
  • CLIENT_ERROR:执行错误。

Memcached CAS 命令

Memcached CAS(Check-And-Set 或 Compare-And-Swap)
命令用于实施一个”检查并设置”的操作

它仅在眼前客户端最终一回取值后,该key
对应的值没有被另外客户端修改的气象下, 才可以将值写入。

自我批评是透过cas_token参数举办的,
这一个参数是Memcach指定给已经存在的因素的一个唯一的64位值。

语法:

CAS 命令的基本语法格式如下:

cas key flags exptime bytes unique_cas_token [noreply] value

参数表明如下:

  • key:键值 key-value 结构中的 key,用于查找缓存值。
  • flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的附加信息。
  • exptime:在缓存中保存键值对的年华长度(以秒为单位,0 表示永远)
  • bytes:在缓存中储存的字节数
  • unique_cas_token通过 gets 命令获取的一个唯一的64位值。
  • noreply(可选): 该参数告知服务器不需要回到数据
  • value:存储的值(始终位于第二行)(可一向领会为key-value结构中的value)

实例

要在 Memcached 上利用 CAS 命令,你需要从 Memcached 服务商通过 gets
命令获取令牌(token)。

gets 命令的功能相近于基本的 get 命令。六个指令之间的反差在于,gets
再次回到的新闻有点多一些:64 位的整型值万分像名称/值对的 “版本” 标识符。

实例步骤如下:

  • 一经没有设置唯一令牌,则 CAS 命令执行错误。
  • 即便键 key 不存在,执行破产。
  • 添加键值对。
  • 经过 gets 命令获取唯一令牌。
  • 利用 cas 命令更新数据
  • 运用 get 命令查看数据是否更新

输出音信认证:

  • STORED:保存成功后输出。
  • ERROR:保存出错或语法错误。
  • EXISTS:在终极一回取值后另外一个用户也在更新该数量。
  • NOT_FOUND:Memcached 服务上不存在该键值。

### Memcached 查找命令

**Memcached get 命令**

Memcached get 命令获取存储在 key(键) 中的 value(数据值) ,如果 key
不存在,则返回空。

语法:

get 命令的基本语法格式如下:

get key

多个 key 使用空格隔开,如下:

get key1 key2 key3

参数说明如下:

-   key:键值 key-value 结构中的 key,用于查找缓存值。

**Memcached gets 命令**

Memcached gets 命令获取带有 CAS 令牌存 的 value(数据值) ,如果 key
不存在,则返回空。

**Memcached delete 命令**

Memcached delete 命令用于删除已存在的 key(键)。

输出信息说明:

-   DELETED:删除成功。
-   ERROR:语法错误或删除失败。
-   NOT\_FOUND:key 不存在。

**Memcached incr 与 decr 命令**

Memcached incr 与 decr 命令用于对已存在的 key(键)
的数字值进行自增或自减操作。

incr 与 decr 命令操作的数据必须是十进制的32位无符号整数。

如果 key 不存在返回 NOT\_FOUND,如果键的值不为数字,则返回
CLIENT\_ERROR,其他错误返回 ERROR。

输出信息说明:

-   NOT\_FOUND:key 不存在。
-   CLIENT\_ERROR:自增/减值不是对象。
-   ERROR其他错误,如语法错误等。

辛辛苦苦经历

九风在校招十二月中就起来投简历,没有总括过投过多少家,基本把牛客网上的可以投的公司整个投了两遍,投了简历的起码有60家商厦;笔试也不了解做了有点了,至少有25家的笔试,最终接受的面试境况:

  • 招银网络科技:电话一面挂;
  • 金山WPS:电话一面过,电话二面挂;
  • CVTE:现场技术一面挂;
  • 美团点评:现场技术一、二三面、hr面得到offer;
  • 网易互娱:现场技术一面、二面拿到offer;
  • 趋势科技:现场技术一面、二面得到offer;
  • 红米:现场霸面技术一面、二面拿到offer;
  • 腾讯:现场一面挂;
  • 深信服:和腾讯面试顶牛摒弃;

另外商家:百度、头条、京东等这一个铺面挂在笔试上了,360、和讯、搜狗、漂亮联合等一向挂在简历上了;

对前日的offer情状比较满意,准备完毕秋招;先感谢给自身offer的面试官,找工作真正是很看运气的,境遇好的面试官会一步一步引导您,碰着风格不搭的面试官这就有点难受了;然后感谢一同找工作的同伙们,一起读书共同发展,多交换面试经验,少走了无数坑;也谢谢很多牛友分享的面经;

准备校招的或者蛮费劲的,九风十一月份起来着力都是7:30起来刷编程题刷到8:30吃早点去实验室准备其他知识点,下午午休前半钟头刷编程题,早上归来洗澡后刷编程题到12:30左右睡觉,没办法,基础非凡只可以靠努力来补;由于智商依然不够用,最终也只把牛客上的leetCode题刷完了罢了,看了一遍剑指offer,这多少个都是神一般的留存,算法题就靠那三个。

Memcached 总括命令

Memcached stats 命令

Memcached stats 命令用于重临总计消息例如 PID(进程号)、版本号、连接数等。

Memcached stats items 命令

Memcached stats items 命令用于显示各个 slab 中 item
的数码和存储时长(最后一回访问距离现在的秒数)。

Memcached stats slabs 命令

Memcached stats slabs
命令用于体现各样slab的音信,包括chunk的尺寸、数目、使用情形等。

Memcached stats sizes 命令

Memcached stats sizes 命令用于显示所有item的高低和个数。

该音信重临两列,第一列是 item 的大大小小,第二列是 item 的个数。

Memcached flush_all 命令

Memcached flush_all 命令用于用于清理缓存中的所有
key=>value(键=>值) 对。

该命令提供了一个可选参数 time,用于在制订的年月后实施清理缓存操作。

九风想对同伴们说:

  • 心怀很重大:九风的offer可以说都在9.22号这天拿的,在那天在此之前,我也是一个offer也并未,也正如难过,看着一块儿的同伴面试、拿offer,我在9.22事先就在9.18号现场地了CVTE一家(招银科技、WPS是电话面的),还一面挂了,当时也是很难受,然则仍旧要持续上学,毕竟,机会是给有预备的人,假若offer还没来,那么仍旧就是切合你的offer还在后面,要么就是还亟需连续深造。摆正心态,厚积薄发!

  • 多互换:九风的试验在一月中就社团了一多重活动,基本天天深夜有个小伙伴来享受,而享受的始末尚未范围,面试经验、操作系统、hr面如何应对、网络知识、排序算法、实习经历、大数问题化解办法、怎样讲项目等等,只要和面试有点相关的都得以,我们一块谈谈,互补知识点,听者从面试角度来咨询,讲者回答,商讨知识点会从如何角度来问等等;

  • 补上盲点:这点发端是对修改简历的提议,九风起头版本的简历的技术就是写自己会什么就写什么,发现中央都在挂在简历上;之后看到上一届师兄们的简历,就专业技能方面就比自己多居多项,至少看起来高大上有些;然后九风就去腾讯招聘C++开发工程师的要求直接粘贴到简历上,适当修改后感觉到简历须臾间伟大上了——–众多知识点都不懂,然后按照简历上写的狂补。只要你补上理解后这就不虚了,因为实在不懂的您可以写个了解,倘诺有时间的话就深深学习。

面经

  • 金山WPS 时间11月底,具体时间忘了,
    对讲机一边: 过了
  1. 什么样检测内存泄漏
  2. 讲讲智能指针
  3. C++容器有咋样
  4. list 和 vector有什么分别
  5. 讲讲大端小端,怎么着检测
  6. public 和 private 关键字,在延续中有怎么着界别
  7. 规划一个内存分配类—参考STL中空间配置器
  8. 现有一个程序需要提请的地方是讲求开首地址必须是16的倍数,怎样统筹—-将报名大小上调至16的翻番,那么最多会浪费15byte上空,真正存储从16byte倍数上开头选用。

电话机二面: 9.12号, 挂了。 然而这多少个要吐槽下,约的2.30,
等到上午5点才打电话过来,等得心累;

  1. TCP两遍握手
  2. http状态码,403是什么
  3. http 与 https的区别
  4. 智能指针,shared_ptr 内部贯彻
  5. IPC通信有什么
  6. 多线程的死锁,死锁制止(讲了银行家算法额思想)
  7. Vistual Studio 怎么调试,咋样设置标准断点
  8. JVM 内存回收
  • 招银科技 9.15号
    电话一边: 挂了
  1. tcp、udp的区别
  2. spring 依赖注入
  3. 面向对象的性状,讲讲多态,什么是多态?
  4. 过程与线程的区别
  5. 什么是信号量,信号量与信号的区分
  6. 依傍注入
  7. 怎么开创索引
  8. 了然怎么设计情势,工厂方法与虚无方法的区别
  9. 怎么总计char二进制中1的个数
  10. sizeof 与 strlen的区别
  • CVTE 9.18号
    实地一面: 挂了
  1. 挑一个最善于的花色讲
  2. 面向对象的基本特征:封装、继承、多态;
  3. 析构函数能无法用virtual
  4. 引用与指针的分别
  5. 引用必须先导化,先在要设计在一个类中如何初阶化引用:
    class A{
    int &a;
    }
    如何给a初始化?
  6. static、const、virtual结合使用情况,以下两种可以么:
    static void fun(){};
    static void fun() const {};
    static virtual void fun() const {};
    static virtual void fun() {};
    以上四种函数可以这么定义嚒? 为何?
  • 美团 9.20号
    实地一面: 过了
  1. 过程与线程的区别
  2. 数据库索引为啥用B+树而不用B-树
  3. spring mvc 的拍卖流程
  4. 做客一个网页的实际过程
  5. 手写单例格局
  6. 手写数组集合
  7. java线程安全了然么
  8. hashmap、hasptable、concurrenthashmap的区分,concurrenthashmap怎样促成高并发?
  9. 掌握如何NoSQL,讲下redis,redis的落实原理,redis怎么落实高并发?
  10. C++怎么样处理非凡,分外向上抛出抛到最上层是何许情状?
  11. get、post的区别,什么是幂等性,put和post的分别。

实地二面: 过了

  1. tcp三回握手,第五遍握手的时候假诺直白发送数据会怎么样。
  2. 一个http请求的有血有肉经过以及具体的协议,越详细越好,dns的查询过程
  3. 计划一个订单,同时有五个骑手抢订单该怎样筹划,有五个服务器处理请求要怎么处理?
  4. select、epoll的区分,什么时候用select,什么日期用epoll
  5. 讲项目
  • 博客园互娱 9.21号面试,22号傍晚出结果; 到了现场先写一个算法,不难。
    现场一面:
  1. 讲下快排
  2. 手写插入排序
  3. 过程与线程的区别,怎么着创制多线程、怎样创造多进程。
  4. IPC通信,会问你协调其实使用过不
  5. socket编程过程
  6. vector实现原理
  7. 怎么着实现vector
    在扩容的时候不开展新的空中申请,即不想有扩容操作,该怎么筹划? —
    从operator new和placement new方面来讲。
  8. 何以将一个行列均等分为两部分,使得这两部分之和尽可能小—–没做出来,相比较为难。

现场二面: 过了

  1. 全程讲项目
  2. 最终出了个题:在王者荣耀中(干嘛不说阴阳师中吗)如何总计全服中颇具玩家阿轲这个大胆的胜场排行?

咦呀,到了神奇的9.22这天了

神奇的9.22号

  • 9:00 美团三面:
  1. 全程问项目
  • 9:50 美团hr面:
  1. 把一个类别用通俗易懂的言语讲懂给他听
  2. 如何处理同事关系
  3. 一个人不会在公司待一辈子,你会出来创业嚒?—坚决咬定不会,美团特别好,留在集团做进献
  4. 为啥来美团?美团的价值观是啥
  5. 你挑选offer的最重大的六个因素

24号发音信说进去录用池了,28号打电话询问手里offer情形,然后定薪资,
30号打电话说薪资情形,要控制是否接offer,我说考虑一天,31号打电话回来把offer拒了,机会留给小伙伴们,小伙伴们加油。

10:50才发现趋势科技也是早晨面试(以为早上边试),赶紧跑过去面试现场。

  • 12:00 趋势科技 (忘记记录,凭记念写咯)
    实地一面:
  1. 基于简历上写的品类、技能来问您是熟练或者精晓,你只是自己用过而已嚒?你不是协调从最底层设计的啊,那就毫无说了!!!!
  2. 讲下项目,给自己项目中的问题看我怎么解决。
    以此一面的面试体验比较不爽,不问里面的现实性技术,只问是不是只是用过,也不让讲透彻一些的知识点,感觉您假设投机统筹出来一个类似的东西如故深切研商过源码才行或者修改源码才行一样,给自家的感觉难受,可是依然感谢让自家过了。

12:50 现场二面

  1. 讲项目
  2. 写一个字符串拷贝函数,你这多少个会出现非凡嚒?怎么立异?
  3. 大概罗马尼亚语口语交流

13:30 hr签offer
立时就问了要不要违约金,然后就签了,当时到手的率先个offer,其他都还没信,心里老畅快了,准备好久,终于有个offer,差点就蹦起来了!

2:30
吃完饭后见到小伙伴有去红米霸面的,我也凑个热闹就去了…,第一次去霸面百度,百度没鸟我,觉得霸面应该没机会,但是HTC仍然援助霸面的,面试体验科学,赞一个(三星面试的小吃摊要刷卡才能进某一楼层,我上它们面试的上一层楼上,想从消防电梯走,结果进了消防电梯到了面试楼层发现要刷卡才能出消防楼层….,然后难堪的打电话给一加hr表嫂来挽救我们。。。。
当时好难堪)。

  • 6:30 中兴,到了先从三道题中选一道题做,
    当场一面:
  1. 先写个堆排热热身吧!!!
    有点忘了,然后自己画图,按照自己的图来写过程,面试官看了两次都说不急,你渐渐写,我哪敢渐渐写,赶紧写完就给面试官了,有些错误,不过总体思路是对的。
  2. 总计逆序对个数,我记得剑指offer上利用联合的探讨将原体系分成前后三个系列,分别总括三个连串中的逆序对个数,再总括五个系列中的逆序对个数,然后再统一继续的思绪;我把思想说了然后边试官就让我手写代码,写好以后她看下了应有是对的。
  3. 还手撸了一个算法,不太记得,但是没地点两个难,面的不佳,全程手撸代码,可是让自己过了,真是满面红光。

中档在等二面的时候跟hr三妹聊天,漫长的等候中。。。

当场二面:

  1. 二面面试官看了下我写的堆排,然后让自家讲了下STL中的空间配置器,问了怎么自由链表中的是8byte的翻番?
  2. 问了特别刚起初这道题:
    怎么样在一个行列中著录当前队列的最大值,这多少个跟那多少个栈的最小值有点相识,可是这一个难一些,我用相当栈的思索说下自己的解决思路,然前面试说您确定嚒?我说我看下,然后自己发现了问题,就把团结意识的题材跟面试官讲了下,然后讲了本人特别解决措施的合计就是这一个栈的最小值衍变而来的;在此以前边试官指示我pop、push、getmax这五个主意都是O(n*lg(n))的岁月复杂度,我说用堆嚒?他说堆插入的刻钟复杂度相比较长,我考虑了下说做不出去。
  3. 末了问了老大逆序对个数的光阴复杂度,让自身手推公式,我也没推出去,然前边试官在我前边手推了一把,然后就截止了。。。。。。。

二面面完后出去跟金立hr表姐说我挂了,然后hr小妹说自己过了,呀呀,说了谢谢就去按电梯下去了,按电梯的时候接受网易互娱的通报说过了,
当时就蹦起来了。下了楼之后一看日子已经是夜里8:30了,劳累了这么久终于有点小成果了。

  • 腾讯 9.24
    当场一面:挂了
  1. 自我介绍,然后边试官说来个自我介绍,说他就问点基础!!!
  2. 写个二分查找–这个倒是很基础
  3. 今昔多少个活动,有三个先导和竣工时间,总结出里面某个时刻有最多运动的个数,
    当时脑壳发热,这一个没想出来,我记忆是做过的。
  4. 理解一致性hash嚒? 设计一个一致性hash。
    我讲了点概念,说要用到虚拟节点,这样可以负载均衡(自己给自己挖坑)
  5. 讲下负载均衡吧—-懵了,讲了同桌的cdn当时的负载均衡项目,有点懵逼。
  6. 讲下epoll的基业实现吧—-红黑树、就绪队列
  7. 讲下linux的内存管理吗。
    我:有点忘了,不太明白您是要问哪方面,是虚拟地址空间仍旧经过调度方面的,能提示下嚒?
    面试官:不行。 我:一丢丢就行了。 面试官:大家换个问题呢。
  8. 讲讲数量引擎吧,
    我:有inodb,还有一个另一个忘了叫什么了,inodb是用的B+树做索引,另一个近似用的B-树(这里记错了,也是用的B+树做索引),
    (我内心想,你问我B+树、B-树吧的界别呢,以及为什么要用B+树之类的,但是并从未问)
  9. 面试时间差不多,你有什么样要问的,
    我问了问常问的题材(心里:怎么不问B+、B-树的区别)。

夜幕赶回一查妥妥挂了,好气哦,说好的问基础,C++基础知识一个没有,感觉应该特别活动的编程题做出来了会好过多,当时脑细胞转不动,实在想不出来,还是自己左右的异常,继续前行。

腾讯挂了未来,我就寿终正寝秋招了。
还在旅途的小伙伴们加油,机会总是给有预备的人的,假使机会还没到你,要么就是真正的机会还留在前边,要么就是您还没准备好!

总结

  • 九风也是学渣,成绩排行靠后,基础不牢靠,都是靠那个月狂补知识点积累的,之眼前的招银科技、WPS、CVTE问的问题都不难,但都依然挂了,都是因为基础相当,补补就好了。

  • 对于面试:当您面了5次以上的面试之后就会发现,其实问来问去就那么多少个问题,所以把常问的问题搞懂搞深,尤其是要搞深,假若你也回复的可比宽泛的回应,这公司为何要你而毫无人家?
    所以对于某个问题早晚需搞的深,比如问select 与
    epoll的区分,别人回答文件讲述符限制,需要不需要轮询这么些我们都能记住的答案,那集团怎么控制就要你啊?其实就是比外人深那么一些,查查资料看看epoll的基本具体怎么兑现的、ET、LT形式具体贯彻的分别,这就是公司要你的原委!

  • 对于知识点:这里推荐一篇大学大佬的作品,估摸很多同伴都看过:http://www.jianshu.com/p/a6ad23aee955
    ,这里基本包括大部分常问的知识点了,但是尚未C++的,下边是C++中常问的知识点:

C++基础知识点:

  1. 面向对象的特色;
  2. 多态: 重载、虚函数, override、overload;
  3. 接轨中的private、public; class 与 struct的区分;
  4. 内联函数与虚函数;
  5. 指南针和引用;
  6. static 和 const;
  7. 智能指针;
  8. 宏和const 、 inline;
  9. 构造函数、析构函数、虚函数、拷贝构造、赋值操作符;
  10. new与malloc;
  11. 进程地址空间内存分配;
  12. strcopy、memcpy、memmove;
  13. 内存对齐;
  14. 类型转换;
  15. 单例格局:
  16. sizeof 与 strlen的区别;
  17. 深拷贝、浅拷贝;
  18. 静态链接、动态链接的界别;

C++ 进阶知识点

  1. STL
    空间布置,具体贯彻过程,假设内存自由链表中没有空间会怎么处理,假设内存池中从不空间会怎么处理,尽管heap中从未空间会怎么处理,为啥自由链表中的倍数是8byte,而不是其他。
  2. vector 的落实,怎样落实不发出拷贝到新空间就只在近日空中扩容(new
    operator、operator new、placement
    new),vector的内存时咋样分配的(空间配置器)
  3. set、map的底部实现,红黑树的概念,红黑树的插入(删除太复杂了,能把插入搞精通就可以了,很少问到这一层次了)

最后的末梢,祝小伙伴们都得到称心的offer!