流程:两场视频技术面 + 一场hr电话面,技术面一面共两轮

一面

一面分为两轮,连续进行,持续30分钟,中间间隔30分钟左右,以在线做题的形式进行考察,可能会沿着题目再问一下你的思路或者详细介绍一下这块知识点

第一轮

  1. 如下代码的输出

    环境:32位x86系统 GCC 4.5编译器 sizeof(int) = 4

    union
    {
        int i;
        char x[2];
    } a;
    
    a.i = 0;
    a.x[0] = 10;
    a.x[1] = 1;
    printf("%d", a.i);
    
  2. 能区分一个TCP会话的五元组包括:________

  3. 有两张 mysql 的表记录了员工的一些基本信息如下:

    mysql > select * from test1;

    id name age
    1 aaa 25
    2 bbb 31
    4 ddd 30
    5 eee 28

    mysql > select * from test2;

    id gender
    1 M
    2 F
    3 F
    5 M

    两张表的 id 都是 PRIMARY KEY,现在希望查询出所有在 test1 表和 test2 表均有记录的员工的信息(即交集),并按照性别和年龄排序(所有女性排在男性前面,同性别再按年龄降序排)

    用一条sql语句实现

  4. 实施垃圾分类的意义重大,假设生活中各种垃圾的比例是:干垃圾(45%)、湿垃圾(45%)、有害垃圾(2%)、可回收垃圾(8%)。小雷经过多次测试,只对某种垃圾进行分类的正确率是:干垃圾(3/4)、湿垃圾(3/4)、有害垃圾(4/5)、可回收垃圾(1/2).为了监督市民处理好垃圾,如果丢一次垃圾,没有一次分对,要接受一个简单的处罚。有一天,小雷去丢两袋垃圾(每袋只有一种类型垃圾),请问他不受处罚的概率是多少?

  5. 分区管理和分页管理的主要区别是:

    A. 分区管理中的块比分页管理中的页要小

    B. 分页管理有地址映射而分区管理没有

    C. 分页管理有存储保护而分区管理没有

    D. 分区管理要求一道程序存放在连续的空间内而分页管理没有这种要求

第二轮

  1. 如下代码的输出:

    include <stdio.h>
    #pragma pack(4)
    typedef struct
    {
        char *a; 
        short b; 
        char c; 
        int d;
        union
        {
            char e1;
            int e2;
        } e;
    } Node;
    
    int main()
    {
        Node n;
        printf("%d\n", sizeof(n));
    }
    
  2. 如下代码的输出:

    #include <stdio.h>
    #define MULTI4(x)  (x << 2)
    
    int main(int argc, char* argv[]) {
        int number = 33;
        number = MULTI4(number += 10);
        printf("%d\n", number);
        return 0;
    }
    
  3. (多选)TCP/IP协议中属于网络层协议的有______ A. ARP B. ICMP C. IGMP D. SMTP

  4. stl 用不用?用的话会用哪些?底层原理有了解过吗?讲一下

  5. 将有关二叉树的概念推广到三叉树,则一棵有2022个结点的完全三叉树的高度为:

    A. 6 B. 7 C. 8 D. 9

  6. Linux 下关于进程的描述不正确的是________

    A. 进程在退出时会自动关闭自己打开的所有文件 B. 进程在退出时会自动关闭自己打开的网络链接 C. 进程在退出时会自动销毁自己创建的所有线程 D. 进程在退出时会自动销毁自己打开的共享内存

  7. 数据库有了解吗?四大特性讲一下

  8. 如何保证最终一致性?(因为回答上一个问题的时候提到了 BASE

  9. CAP 讲讲?具体什么情景下会用 CP、AP?

  10. 编程题:实现 atoi,一共4个条件(字符串转换、截断、边界值,允许前导空格,不允许中间空格)

    编译器类型检查比较严格,和 .size() 比较的时候必须用 size_t

  11. 项目相关:py 和 php 都写过,说说异同和感受

  12. 平常玩哪些游戏?

二面

先自我介绍

  1. mysql 语句优化:select from tab where id = 1; id(1,2,3)

    如何优化查询

  2. 要计算 a^n,设计一种算法,算法复杂度是多少

    如果只要求 a^n 结果的个位,设计算法,算法复杂度是多少

  3. 项目相关问题(略

  4. http 和 https 的区别

  5. #include 的含义

  6. inline 的含义、作用,与 define 的区别

  7. static 的作用

  8. .lib 和 .dll 的区别

  9. java 发生 oom 时,可能是什么情况(原因导致)

  10. java /py/ cpp gc(垃圾回收

  11. 写一个快排或者冒泡排序

  12. 写一个单例

    问为什么要加锁

    可不可以写一个不加锁的

hr面

电话面,持续10-20分钟

具体不太记得了,可能有问题遗漏

  1. 自我介绍
  2. 未来3-5年的规划
  3. 为什么这样规划
  4. 希望2-3年内获得什么样的成长(规划中提到了)
  5. 大学里学的最好的课程是什么?
  6. 感兴趣的方向,为什么投这个岗位
  7. 入职时间,可以实习的时长
  8. 有没有投其他厂,进度怎样

工作组

可以在反问面试官的环节提问会被分配到哪个工作组,也可以在offer发放以后,联系对接的hr。

我问hr的时候他跟我说,实习项目组还没确定,可以参考录用书附件上面雷火事业群部分上线或者在研的项目。入职前hr会让各个已上线/在研的项目组主程序看大家的情况,结合优势来做分配。但是如果对某些类型、或者方向例如端游手游有什么倾向,可以发给hr,也会考虑在内。