C++后台开发面试笔记

前言

我想先说我的感受: 专精计算机的一个方向,在平时学习的过程中注意积累,遇到问题最好深入了解,不要浅尝辄止。如果坚定了走程序员道路,就要在计算机方面保持兴趣与好奇心。平时广泛涉猎相关的领域(比如你搞后台就要懂安全),并且注重结果的展示(比如写博客),这个很重要。

电话面试

前几天我走了一个公司的内推,然后目前经历了电话面试的一面和二面,对于结果我感觉比较悬,现在我先写下电话面试的题目并尝试做出解答(有空的话)。

一面:
她打了三次电话给我(手机故障),第三次我接到了。我感觉她问的思路是说到哪问到哪的。一开始就问我项目:我做了一个五子棋AI项目,下面是她的问题:
1、能简单介绍一下这个项目吗?
我跟她讲了整体思路,其中用到的方法:极大极少搜索树、alpha-beta剪枝、贪婪算法、置换表的实现。
2、之前你讲到了数组,请问数组是怎么寻址的,在底层方面如何进行随机访问?
3、你有接触过与数组相关的数据结构(链表)吗?它们的优缺点在哪?是否能够兼顾这两种数据结构的优势(哈希表)?
4、哈希表的结构,可以遍历哈希表吗?
5、vector的增长方式。
6、new了一个空间,不够用了怎么办,不使用这个空间需要干什么,如果别人拷贝了你这个指针(但是你delete了)怎么办?
7、new了一个空间在哪个地方?一个函数的局部变量呢?
8、从堆栈的角度给我讲讲函数调用的时候到底发生了什么?
9、在100个元素找出前5大的元素。(这是剑指offer的编程题,我感觉还是蛮有用的,堆排序应该是正确答案)。
10、列举出你知道的排序算法、算法的主要思想、复杂度。
11、TCP和UDP的区别,TCP如何做到有序的?
12、在你的那个项目中,为什么使用MongoDB?
13、实习时间。
我感觉我能达到六七成,而且气氛也比较好,聊了39分钟。


二面
那时我刚好游泳了,我说我刚完泳,他问我要不要等下再打给我,我说我现在方便。
1、实习时间
2、你做的那个项目,简单介绍一下?你负责哪部分?
3、为什么选择mongoDB?
4、什么是事务?事务有哪些特性?事务的隔离性是什么?有哪些层次?
5、你使用过mySQL吗?对于千万级别的数据量你怎么优化?B+树的结构是怎样的?
6、C++的运算符重载怎么实现的?
7、存在单继承、多继承关系时,类的构造和析构的调用顺序?
8、UDP应用场景,如何在UDP的基础上实现TCP的功能?
9、什么是crsf攻击、xss攻击?
10、DDos攻击有哪些形式?具体过程是怎样的?
11、你平时有关注哪些技术领域吗?
12、你比较感兴趣的方向是什么?比如大数据,机器学习?
大概就这样,我感觉很多我都没准备好。
其实我想说,不管这次怎样,我都会深入计算机领域,用积极心态去学习,如果这次进不了,还有下次。是金子总会发光。
未完待续。

你可能感兴趣的:(算法,C++)