阿里云数据库高质量面经
阿里云的面试很难,非科班几乎很难通过,靠谱的项目+基础知识(C++以深度为主,Java以广度为主)+ 经典算法题。简历面编译器是怎么优化的手撸内存分配器通过一个数组来管理资源,需要使用时从数组中分配一个成员,使用完毕后从数组中释放该成员,释放后的成员可以被再次分配使用;请实现一个结构用来快速的对资源进行分配和释放。聊项目类似于内存池的实现,使用list来管理内存。//通过一个数组来管理资源,//需
阿里云的面试很难,非科班几乎很难通过,靠谱的项目+基础知识(C++以深度为主,Java以广度为主)+ 经典算法题。
简历面
编译器是怎么优化的
手撸内存分配器
通过一个数组来管理资源,需要使用时从数组中分配一个成员,使用完毕后从数组中释放该成员,释放后的成员可以被再次分配使用;请实现一个结构用来快速的对资源进行分配和释放。
聊项目
类似于内存池的实现,使用list来管理内存。
//通过一个数组来管理资源,
//需要使用时从数组中分配一个成员;
//使用完毕后从数组中释放该成员,释放后的成员可以被再次分配使用;请实现一个结构用来快速的对资源进行分配和释放。
// 10000这种数字是跟面试官沟通以后随便写的
class memory_manage {
public:
obj* m_malloc() {
obj* p = nullptr;
if(l.size()) {
p = l.front();
l.erase(l.begin());
} else if(cur<10000) {
p = &arr[cur++];
}
return p;
}
void m_free(obj* p) {
l.push_back(p);
}
private:
obj arr[10000];
int cur = 0;
list<obj*> l;
};
一面
说说 const char *ptr 和 char const *ptr的区别
写出一个包含以下元素的结构体的大小
char a;
char b;
double c;
int d;
内存对齐
static的作用
宏和inline区别
说说纯虚函数和虚函数
new和malloc区别
说出以下代码每行的作用和运行结果
char *p = (char *) malloc(10);
sizeof(p)= 4
free(p+1)
手撸算法:最大子矩阵和,我是用 O(n^3)的做法写出来的 这道题目难度确实很大。
口述算法:N个数,有一个数出现超过N/2,寻找这个数
口述算法:链表倒数第K数
静态链接库和动态链接库的区别
epoll和select的作用
手撸多线程编程题:队列取数和放数交替操作(具体的记不太清了)
mutex g_mutex;
condition_variable cv;
queue<int> q;
bool flag = 0; // 0放,1取
int get() {
lock_guard<mutex> mtx(g_mutex);
cv.wait(mtx,[] {return flag==1;});
int val = q.front();
q.pop();
flag = 0;
cv.notify_one();
return val;
}
void put(int val) {
lock_guard<mutex> mtx(g_mutex);
cv.wait(mtx,[] {return flag==0;});
q.push(val);
flag = 1;
cv.notify_one();
return;
}
聊项目,因为自己的项目是实现了一个小的关系型数据库,正好这是数据库内核组,于是就.........被花式吊打
二面
聊大一时候的图像检索的项目
聊数据库这个项目
手撸算法题:
按段(段内的元素不翻转)翻转链表:如链表 1->2->3->4->5->6->7->8->9,如果段大小为3,翻转后为7->8->9->4->5->6->1->2->3。
注意段大小作为参数传入。要求编写可以运行的测试用例(有main函数和足够的测试集),注意代码规范。
三面
Linux系统怎么看cache的相关信息
什么情况下内容会存进cache,怎么看cache的内容
聊项目。。。
算法题1:找二叉树最深的节点
算法题2:遍历二叉树最底层的节点
算法题3:在一个无向图中,如何判断两点是否联通
算法题4:在一个有向图中,如何判断两点是否联通
这一面还是比较简单的,几个算法题就是dfs、bfs来回考,判联通可以用并查集操作一下。
四面
聊项目
进程和线程区别
进程间的通信方式
如何调试C++多线程程序
聊人生
五面(hr面)
自我介绍
自己擅长什么不擅长什么
聊聊ACM经历
说说自己的学校怎么样
自己成绩怎么样
人生最大的挫折是什么
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)