首页 > 字节跳动 ailab 后端一二面面经
头像
Carits
编辑于 2020-04-16 22:09
+ 关注

字节跳动 ailab 后端一二面面经

一面

1.自我介绍

2.问了一下为什么大三做毕业设计

3.上了哪些课程

4.多态原理了解吗?

5.虚表的内存结构了解吗?

6.定义一个虚类,会占多少空间?

7.c++的内存结构

8.堆区和栈区有什么区别?

9.平时都会使用哪些STL?

10.还有其他的STL?

11.hashmap简单介绍一下(讲了开链法),怎么查询?

11.其他hashmap了解吗?

12.双哈希如果两个都冲突呢?

13.平衡树了解吗?(不了解)

14.splay树,treap了解吗?

15.vector的push_back会发生哪些事情?

16.vector的push_back对象会发生哪些事情?

17.不希望有一个拷贝构造的方式,有什么其他优化方法吗?有了解其他接口吗?

18.讲一下你常用的图论算法?

19.讲讲EK算法(太久不用,忘了),讲讲Dinc(还好记得)?有什么区别?

20.AC自动机了解吗(woc,字典树和kmp我都会,就是不会AC自动机)

21.有了解过跳表吗?

22.了解cache吗?

23.平常cache用到的算法有哪一些(讲了一下常见页面置换算法)

24.TCP的三次握手和四次挥手。

25.TCP和UDP的区别。

26.代码题:判断二叉树是否同构?(说了几种方法都被hack了,然后让我写一仲暴力写法)

二面(一度以为一面挂了)

1.实习的时间(我说一年)。

2.除了acm还做过其他项目吗?

3.看你有python项目,对python掌握怎么样?

4.python有用过多进程吗?

5.python里面byte和string有什么区别吗?(完全不知道)

6.python写个脚本会吗?

7.Linux环境熟悉吗?

8.C和C++哪个更熟悉?

9.C++的多态机制。

10.虚函数的内部机制。

11.

#include <cstdio>
class A{
public:
    A(){
        f();
    }
    virtual void f(){
        printf("A::f\n");
    }
};

class B:public A{
public:
    virtual void f(){
        printf("B::f\n");
    }
};

int main(){
    B b;
    return 0;
}

这个输出是什么?为什么?

12.析构函数为什么要弄成虚析构函数?你有试过吗?

13.Windows下同步互斥都有哪些方法?哪个效率更高一点?为什么?

14.进程的内存分类。

15.栈和堆有什么结构性的区别吗?

16.你刚刚说到内存碎片,如何避免内存碎片呢?

17.项目里面如何解决内存碎片的问题,比如用一些开源的内存池。

18.STL的双端队列如何实现的?

19.C++一般为了减少这种复制拷贝,会有什么措施。

20.hash的方法。

21.设计模式了解吗?

22.讲一下单例模式。

23.Windows下多线程调用这个单例怎么用,写一下。

24.怎么保证线程安全?(上锁)

25.写了加锁的伪代码(他不断告诉我怎么加有什么问题)

26.写下快排或者堆排。(选择写了堆排,告诉了思路)



更多模拟面试

全部评论

(4) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐