c/c++后端开发岗秋招面经持续更新(异格网络 4399…)
岗位:EDA工具开发工程师
#写在前面#
------>面试感受:
1、首先今天的这个面试官一听就是一个技术牛,问的东西都是非常考验你的底层基础,比以往的互联网面试还要考验自己的基础概念以及底层理解,所以他问的东西和我自己现在掌握了的还有很大的差距吧。
2、因为复习的东西和他问的东西交集比较少,所以回答可能都不怎么好,然后遇上自己模棱两可的知识点的时候,就有些开始靠着自己的记忆去回忆去复述相关知识,有些地方真的记不太起来了,就有些在强行解释,这一点可能在面试过程中的观感就不太好。如果是在一些延伸性拓展性的知识上,你去发散去延伸理解那效果可能会不错,但是如果是面对那种八股知识你考着自己的理解去延伸去发散那么就不会太好了。
3、问了几个问题之后,面试官才发现我是23年毕业的,感觉他们最近都是在看春招的简历都是在面春招,所以会碰上这样的情况也不太奇怪,这个时候,我就向面试官表明自己找实习的一个目的:在秋招之前找一个暑期实习,深入公司里面学习、如果感觉岗位比较合适并且公司发展比较好的话,就会好好努力争取转正,大四的时候毕业论文弄完之后直接到公司里上班。
4、面对面试官的时候,不要太紧张,面试官也不是为了让你紧张来面试的你,他是觉得对你比较感兴趣,想了解了解你的水平试试深浅,所以这个时候要记住一个原则:1、大方自信这是第一位的 2、简明扼要的表述清楚自己的意思 3、对于不太清楚的东西就把自己明白的地方说完说尽,确实不知道的就不要硬扯表明出这一块你不太熟悉,但是你后面会进一步学习
#面试的问题#
问的c++的基础知识
1、c++的内存区有哪几种?除了堆、栈还有那些内存区
2、静态变量、全局变量放在哪里?
3、静态变量放在栈里吗?
4、define可以定义一个宏、const有什么区别?define已经进行了预先的预编译,const是需要赋予变量的存储区,会给const
5、c语言struct 和union有什么区别
6、数组,原生数组和STL的vector数组有什么区别
7、什么时候会使用原生数组?(需要考虑到性能的时候,如果是进行一些数***算或者算法的时候,对性能要求比较高
8、数组和链表,什么时候使用数组结构?什么时候使用链表结构?
9、如果需要快速删除一个链表中的某一个元素,单向链表可以实现?(需要使用双向链表
10、数组和链表各自的优势?
11、数组的下标索引的时间复杂度的多少?O(1)
12、时间复杂度是什么?
13、时间复杂度与什么又关系(与数据规模有关系,
2、面试的时候,我发觉面试官好像有一个问题表他就是按照顺序来问我的样子,那么我其实是有点在怀疑,他是不是在刷所谓的kpi,所以我不太明白这次面试的继续下去的可能性有多大,所以我感觉可以通过问一些实际的具体的问题来解决自己内心的疑惑,比如,反问的环节我就可以问,“请问部门具体做的是什么业务呢?贵公司是游戏公司,那么和普通的互联网后端开发有什么不一样呢?,游戏公司的后端开发需要额外掌握那些技能呢?”
面试20mins【史上最短的面试】
1、你实现的3des是什么个加密方式,他和rsa加密有什么关系
2、常用的http常用的数据安全可以怎么做
3、tcp通讯做数据安全应该怎么做
4、c++的宏定义和全局常量有什么区别,define 和const
5、递归和循环有什么区别?
A:
- 递归的逻辑与写法相对简单一些
- 递归所用的时间(时间复杂度)一般要高于循环
- 递归是自己调用自己,使得问题的规模不断被缩小,而循环是执行很多次,每次都可以更接近目标
6、指针的加减操作代表什么意思?
https://blog.csdn.net/e_wsq/article/details/16367135
https://blog.csdn.net/king52113141314/article/details/100631805
A:对指针进行加1操作,得到的是下一个元素的地址,而不是原有地址值直接加1。所以,一个类型为 T 的指针的移动,以 sizeof(T) 为移动单位。
7、有使用面向对象的设计模式吗?
8、如果很多人同时借一本书的话,那么会出现安全问题吗?【就是一个线程安全问题,这里问我除了互斥锁还有别的什么锁,这个地方回答的确实不是很好】
9、tcp的拥塞控制是个什么东西【快开始、快恢复这个地方不太记得了】
A:https://blog.csdn.net/sinat_21112393/article/details/50810053
为了防止cwnd增长过大引起网络拥塞,还需设置一个慢开始门限ssthresh状态变量。ssthresh的用法如下:
当cwnd<ssthresh时,使用慢开始算法。
当cwnd>ssthresh时,改用拥塞避免算法。
当cwnd=ssthresh时,慢开始与拥塞避免算法任意。
快重传配合使用的还有快恢复算法,有以下两个要点:
①当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把ssthresh门限减半。但是接下去并不执行慢开始算法。
②考虑到如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方现在认为网络可能没有出现拥塞。所以此时不执行慢开始算法,而是将cwnd设置为ssthresh的大小,然后执行拥塞避免算法。如下图
10、给定你一个字符串,你如何找到重复的字符串【说了使用hash map来存储,如果】
11、字符串计算hash值的一些方法【我觉得这里可以说的更加具体一些,比如sha256啥的】
12、对测试工作有没有了解【完全不知道面试官为什么要问我这个问题,我面的研发岗位,他问我测试】
13、你对测试工作有没有兴趣【我还是比较喜欢开发】
14、平时有什么兴趣爱好
15、你有没有想要了解问题
反问问题:
1、刚刚问了我想不想做测试工作,部门是要做测试的吗?
2、我还需要继续学习那些内容?