在线笔试

在线测试的主要内容就是20道选择题和两道编程题。

选择题就是一些八股文,具体记不清了。反正对面试影响不大。

两道编程题是:

  1. 求给定一个数组经过降序排序之后,前30%中最小的数。
  2. 给一组IP vector ips,求子网掩码的最大长度。

面试

面试官是一个小哥,听声音比较温和,

注:开面之前假装调摄像头,先把iwatch录音开启来。

  1. 自我介绍

    答:我叫xxx,来自xxx,在德国克莱登大学计算机专业读研二。我自己目标的方向是CC++Linux后台开发方向,我对这个方向所需要用到的理论知识有一定的了解。 比如数据结构,如队列、栈链表、还有一些别的算法,比如回溯、动态规划等。还有IO多路复用的知识,比如select、poll、epoll以及在它们之上进行封装的Reactor和Proactor?这里C/C++说自己只是了解(有点不够自信),学习的时候习惯将学到的重要知识点总结成笔记,然后业余爱好的话,我每天坚持跑步5km,然后平时喜欢读一些书。现在在学RPC这方面的内容,想把之前的项目扩充 ,把httpserver扩充用到数据库之类的中间件。

    reactor是对epoll的一层封装 ,epoll是对io进行管理,reactor将对io的管理转化为对事件的管理。

    应该要说能够熟练掌握C/C++基本语法与应用,放介绍的前面说比较合适,

  2. 看你简历上说你有一次实习经历,你的收获是什么?

    答:做的事情相对比较简单,因为算是第一次实习,之前也有实习过,但是是测试,这次实习至少能看到一些软件开发流程,导师有分配一些解bug的任务。然后这次实习主要是与QT相关。主要是能够接触到它们的代码的语法风格。有些问题看起来很简单,但是做的时候没法下手,然后导师指导后,也就是用到常用的封装的方法,不应该这么说应该具体是说面向对象的方法,比如说继承。。。

    打日志很重要。(中间又是一大堆嘶嘶嘶嘶嘶嘶)。

  3. 在实习中你有了解过软件开发的生命周期是怎么样的呢?

    答:忘记了,答的支支吾吾

  4. 你在实习的时候有解决过什么bug吗,有没有学到或者是有没有一些解决问题的心得方法?

    答:这里已经慌了。语无伦次了,

    先找到出现问题的大概位置,阅读上下文代码,了解类的封装情况,代码的执行情况,根据这个来修改,增添新类不是很敢做。

  5. 有学过一些设计模式吗?

    答:这个只记起来单例模式,别的一时间脑子一片空白。

  6. 类的封装或设计上你有没有什么设计思想或者是一些指导思想?

    答了一些屏蔽属性,只提供给用户有限的使用接口,反正也是答的不好

  7. 我看你写了一个web服务器项目,有用到哪些开源组件吗

    回答:目前没有,只用到了epoll

  8. 你能介绍一下你的这个项目整体设计是什么样的?分了几个线程或者是线程,每个线程职责是什么?或者说从类的分工上分了几个层次或者框架,你能简单介绍一下你的这个程序的设计吗?

    答:开始不知道为什么笑起来了???说的乱七八糟???

    搞的面试官再次提问,你这个项目的工作流程是什么样子的呢?先给我介绍一下大概的结构是什么样子,然后再介绍进程和线程都是做什么用的,这样我比较好的了解你这个项目的全貌。

    明明这方面项目看了好多

  9. 你这个项目用的是get方法来获取资源 ,你这个程序是只能下载不能上传的吗?

    答:目前没有做这个功能

  10. 那么如果下载的是一个大文件,有没有支持断点续传功能呢?

    答:这个不了解,没做过。

  11. 你这里用到了get请求,有没有了解过http请求的一个效率问题呢?get请求和post请求数据量一致的情况下哪一个效率会更高一点呢,为什么?

    答:不知道,答不上来,我说没差别。。

  12. 你这里epoll选择的是ET、还是LT为什么?

    答:ET、因为我请求的都是小文件,基本几次数据就到了,所以只要缓冲区第一次有数据到来才触发就够了。

  13. 都说epoll比select和poll高效,那么高效的原因是什么?

    答:说了一下区别,select和poll每次都要设置监听fd的集合,而epoll不需要,而且epoll事件是存在一个红黑树。所以效率更高。感觉不行

  14. 你这个程序的话,是一个web服务器,那现在我们发散一下,改成一个CDN服务器,就像我们现在用的视频会议工具有个视频流传输,要做到实时级别视频级别的服务器的话,底层就传输层协议可能不用TCP实现,而是用UDP实现,因为我们都知道UDP实时性能要高一点。现在场景是传输层我用UDP实现,但应用层协议我还没敲定,我的要求是能够有一个更好的可靠性,如果既要保证实时性又要保证可靠性的话,你会怎么去实现呢?

    答:TCP是依靠序号机制和三次握手来实现数据包不丢失不乱序,那么传输层UDP时在应用层发送数据时加上序号。

  15. 你是否有了解过满足我刚刚说的要求的应用层协议呢?

    答:QUIC,具体细节忘记了

  16. 你刚刚提到有用到线程池,那么你有了解过线程池的线程数初始值根据什么来决定。

    答:(不会)根据并发数来确定初始值。

  17. 那你有测过你的webserver的并发数吗?

    答:瞎扯之前百万并发的实验,就说通过调大内存和最大文件描述符打开数量,调小读写缓冲区,能到80w连接。

    面试官说那就是要好好系统性的梳理一下原因

  18. 在STL你会用到哪些容器呢?

    答:vector、set、map详细讲一下

  19. 你刚刚说到vector中动态扩容,那为什么是1.5倍或者是2倍?

​ 答:不知道。。。。

  1. map查找上是什么样的复杂度?

    答:Olog2N

  2. 你在做算法题或者项目功能时,有什么调试方法保证运行逻辑和你预期是一致的?

    答:主要是打输出,gdb中打断点。

  3. 你有了解过程序崩溃的时候,应该怎么去排查呢?

    答:我回答内存泄漏、边界问题,在资源分配和数据流动代码附件加断点或打输出。

  4. 你刚刚提到内存泄漏,那C++上有提供了一些好用的方法来解决这个问题,比如智能指针,你有了解过或用过吗?

    答:介绍了unique、shared、weak类型的shared_pointer,循环引用问题。

  5. 你对自己学习规划有什么想法吗?

    答:刚刚面试完发现自己网络部分薄弱,还要加强。把前面的知识复习到位,然后要多动手,并发编程这一块也要加强学习一下,同时redis mysql也想应用于自己的项目中。

反问

心得体会:

  • 讲话有点慌张,总好像一直在笑,应该还是要稳一点,偶尔微笑可以;

  • 语气呼吸优点不流畅,不要思思思思;

  • 不够自信,总是想收回自己的话;

  • 理论知识和实践都需要提高,对于项目介绍的准备还不够充分;

  • 面试官人还是很好的,会一步一步循序渐进的提问,并且比较有耐心,最后也给出了比较中肯的评价,虽然这次面试挂了,但是收获上来说还是比较大的,比较换位思考,如果我是面试官,我也会把自己给挂了。~~

CVTE C/C++研发实习面试(凉)相关推荐

  1. 2021年4月16日 阿里供应链Java研发实习面试(二面)

    title: 2021年4月16日 阿里供应链Java研发实习面试(二面) tags: 面经 2021年4月16日 阿里供应链Java研发实习面试(二面)(70min) 自我介绍 介绍自己的研究生项目 ...

  2. 2021年4月12日 阿里供应链Java研发实习面试(一面)(含总结)

    title: 2021年4月12日 阿里供应链Java研发实习面试(一面) tags: 面经 2021年4月12日 阿里供应链Java研发实习面试(一面) 自我介绍介绍项目你用哪个版本的Java呢?( ...

  3. 我的Java研发实习面试经历

      终于要开始写博客了,立志做一枚羽毛球界最会写代码的妹纸,写技术博客是必不可少的,所以先拿最近生活的中心--找实习开启我的csdn博客之旅吧.我是9月初开始有找实习的念头,目标定位互联网公司Java ...

  4. 透彻解析!字节跳动Android实习面试凉凉经,年薪超过80万!

    什么是Kotlin? Kotlin,如前面所说,它是JetBrains开发的基于JVM的语言.JetBrains因为创造了一个强大的Java开发IDE被大家所熟知.Android Studio,官方的 ...

  5. 字节跳动Java实习面试凉凉经,附答案+考点

    写在前面 很多小伙伴留言说让我写一些工作过程中的真实案例,写些啥呢?想来想去,写一篇我在以前公司从零开始到用户超千万的数据库架构升级演变的过程吧. 本文记录了我之前初到一家创业公司,从零开始到用户超千 ...

  6. 联想C++实习面试凉经

    2023年04月13日 9:30:00 这个面试好像比较着急,也没有自我介绍,面试官直接就问问题了. 一共面了40min左右 介绍一下epoll是什么? epoll和select有什么区别? 效率不同 ...

  7. 字节跳动Android实习面试凉凉经,震撼来袭免费下载!

    开头 最近,程序员这个圈子可谓热闹非凡,前不久,一个神奇的开源项目996.ICU诞生,几天时间就有超过10w+ star 和 1w+ fork ,可谓是Github上star增长最快的项目.996.i ...

  8. 泪目!字节跳动Android实习面试凉凉经,面试必备

    前言 最近我开始偷偷投简历了.与老东家的合同快要到期,想知道自己的斤两,续签合同也好有个底,顺便悄悄看看新的工作机会.虽然市场环境不好,但我们身在涨工资靠跳槽的行业没办法. 由于工作了5年了,经验有了 ...

  9. 四面阿里Java开发岗,字节跳动Java实习面试凉凉经

    开头 我们面试的时候 ,经常会被问这种到问题:Spring中bean的循环依赖怎么解决? Spring中bean的加载过程? spring相关的问题一直是大厂面试常问到的一个问题,也是一直困扰这我们, ...

最新文章

  1. SQL2005的安装与 使用
  2. 倒计时一天 坚果智能影院让家用投影投出你的新生活主义
  3. ATC计算机会议,三项成果被计算机系统重要国际会议USENIX ATC和HotStorage收录
  4. 验证dropdownlist必选
  5. python注释的用法(单and多行)
  6. (34)FPGA分频设计-奇数分频(第7天)
  7. 最近使用mysql遇到的几个问题
  8. python读取txt每一行-Python逐行读取txt文本,按符合分割词并逐行写入txt
  9. C++ Primer 读书笔记 - 第二章
  10. 【疑难杂症】xmind启动后,自动退出的问题
  11. Xcode 与 macOS 系统版本的兼容问题
  12. Docker学习(三)Docker常用命令
  13. JAMA Psychiatry:老年抑郁症患者的神经影像学、认知、临床症状和遗传学的异质性表征
  14. iOS证书的种类和其作用
  15. 巴比特《8问》专访 Conflux 创始人龙凡教授
  16. python抓取日本网站上iphone5的价格
  17. git 账号密码重置
  18. [转载]计算机视觉、机器学习相关领域论文和源代码
  19. webpack的proxy代理配置
  20. 如何更改vmware的网络模式

热门文章

  1. Maven创建三种项目类型:pom war jar
  2. python 生成ppt 比例_如何用Python将PDF转化为PPT
  3. 我的币圈量化学习之路-初衷
  4. swift编程语言入门-基础类型
  5. CSS权重的问题:选择器权重值的计算
  6. vue项目中引入bootstrap的方法
  7. java 删除pdf文件_java将pdf文件转成图片后删除pdf文件
  8. 计算机视觉与图形图像会议、学派的一点八卦和资料
  9. 多边形裁剪一:Sutherland-Hodgman算法
  10. 什么是方法,方法的作用