个人提前批笔面汇总(发经验攒人品)

从海投变成海挂hh,挺容易的。(接下来继续坚持海投,希望能进大厂或者中厂

TPLINK 提前批 测评

  • 10道技术选择,3道解答,2道编程
  • 判断是否是Ipv4地址,判断是否是回文链表
  • 10道常识推断,10道数据分析,10道图形推断

TPLINK 提前批 软件开发工程师 一面

面试很快,20分钟,无反问环节,我面完我看见下一个人马上腾讯会议了

  • 自我介绍
  • 本科,研究生成绩,是否是保研的,有无论文和专利
  • 介绍自己的一个项目,遇到了什么困难,当时是怎么解决的
  • C++中static的作用,C语言中static的作用
  • C++的多态请介绍一下
  • Mysql的ACID请讲一下它们的定义
  • mysql的隔离级别请详细说一下
  • mysql的引擎怎么实现隔离的?(这个直接不会
  • redis的过期删除与内存淘汰
  • 说一下堆排序怎么实现的

TPLINK 提前批 软件开发工程师 二面

面试了快35分钟,共享屏幕手撕

  • 自我介绍
  • 介绍一下自己的项目
  • HTTP和HTTPS区别
  • 线程同步的方法
  • TCP三次握手,四次挥手
  • 了解C++11么,我说了智能指针(下面就让我手撕实现
  • 手撕shared_ptr
  • 手撕C语言实现虚函数功能

TPLINK 提前批 软件开发工程师 三面

面试20分钟

  • 自我介绍
  • 是否保研,考研排名,本科成绩,研究生成绩
  • 研究生实验室项目
  • HTTPS客户端项目
  • 反问环节

TPLINK 联洲提前批 测评

  • 10道技术选择,4道解答,2道编程技术选择有些java题目解答题目:数据库ACID, MVC模式,RESTful风格API,响应式交互设计
  • 整数反转,最长有效括号数量
  • 10道常识推断,10道数据分析,10道图形推断

TPLINK 联洲提前批 一面

35分钟

  • 自我介绍
  • 本科,研究生成绩排名,是否是保研的,考研成绩,有无论文和专利
  • https客户端项目
  • https和http区别,https握手的过程
  • tcp为什么是三次握手,两次握手服务器端什么情况
  • redis项目服务器怎么实现的,集群怎么做的
  • 如果新增一个redis服务器节点,什么情况
  • io多路复用
  • 水平触发和边缘触发

TPLINK 联洲提前批 二面(终面)

20分钟,聊天为主

  • 自我介绍
  • 本科成绩,有没有参与过竞赛,有获得过什么奖学金么
  • 依次根据简历问各个经历,项目情况
  • 研究生方向,毕设方向,目前毕设完成情况
  • 反问环节

TPLINK 联洲提前批 三面(加面)

  • 自我介绍
  • 本科成绩询问,排名,数学成绩为什么这么差
  • 实验室有参与过什么项目
  • HTTPS客户端怎么做优化的?
  • Socket编程有哪些API?
  • socket函数返回值代表什么意思?
  • C++ 指针和引用区别?
  • C++中怎么对内存泄漏情况检查?怎么避免内存泄漏的情况?gcc启用asan标志检查;重载new和delete;使用valgrind工具尽量使用智能指针代替普通指针;使用RAII的思想编写类;预先设定好内存池,使用内存池管理内存(他好像还觉得不满意,让我答出点别的标记清除法(参考其他语言gc的方法;公司有代码审查工具,可以自动检查野指针,空指针,内存泄漏等高风险问题,有问题会给出代码高风险预警
  • 目前有没有在面其他公司的提前批?拿到offer了么?
  • 问我是哪里人,意向工作地点,父母情况

万得 提前批 C++软件开发 一面

面试官评价动手能力很强,C++底层原理了解不够深,面试时间30分钟。

  • 自我介绍
  • 聊软件API开发,单元测试
  • https客户端项目,事件循环怎么写的,epoll
  • 虚函数表的地址怎么获取
  • C++11了解么
  • C++的mutex源码有看过么,底层怎么实现的
  • C++的share_ptr源码有阅读过么,底层怎么实现,有没有使用锁
  • C++ 无锁怎么做的?atomic底层怎么实现的
  • windows的API熟悉么
  • 意向哪个城市,南京还是上海
  • 反问技术栈,可能的工作内容学习建议

万得 提前批 C++软件开发 二面

面试了好像20分钟左右

  • 自我介绍
  • 介绍自己HTTPS客户端怎么做的,哪些优化点
  • C++的编译过程
  • 对IO多路复用的理解
  • 内核态和用户态区别

万得提前批 C++软件开发 笔试

求S型表达式

过了一周挂了,发了个感谢信

阿里巴巴 早鸟-JAVA开发工程师-买家交易链路方向 一面

面试时间35分钟

  • https客户端项目介绍,为什么要设计客户端连接池
  • CPU,内存,磁盘怎么协同执行程序的
  • 并发编程理解
  • 为什么进程之间切换开销大于线程之间切换开销
  • 为什么要区分内核态和用户态
  • 死锁条件
  • 说一下熟悉的git命令,git commit 和 git push 区别,为什么要设置一个暂存区
  • 反问环节

面试完后一天告诉挂了

中兴 软件开发工程师 未来领军计划 一面

腾讯会议面试,三个面试官,应该是2个技术面试官,1一个hr,面试时间50分钟左右

  • 自我介绍
  • 说一下你主要用什么编码,以及代码量
  • 做项目时候有没有遇到奇怪的BUG,怎么解决的(数据竞争问题-tasan,未正确放置终结符'\0')
  • 你研究生方向是什么,做过什么项目(我说NLP),为什么做的跟研究生方向不一样
  • 某个线程占用率高,怎么排查问题(面试官说top命令的一个关键参数啥的,没听清Linux C++ 程序占cpu%问题排查_幻想之渔的博客-CSDN博客
  • gdb怎么调试多线程
  • 说一下死锁的原理
  • 多线程中你用过哪些锁,遇到过死锁的情况么(pstack+gdb)
  • 有遇到过内存泄漏的情况么,怎么处理的
  • 看你做的网络相关很多,TCP和UDP的区别。
  • 微信和QQ收发消息用的什么协议,现在这个视频用的什么协议
  • socket底层的关键字你有使用过吗,协议怎么设计的
  • mysql的索引优化你使用过么
  • 数据库里面的表怎么设计的
  • docker你有使用过吗
  • C++的类生成的默认函数有哪些
  • 你对重载,覆盖,隐藏的理解
  • 多态情况下基类编写需要注意什么情况
  • C++智能指针管理对象的原理是什么
  • 你有没有阅读过什么开源库,简要介绍一下
  • 貌似是hr的面试官开始问你家住在哪里,意向城市,为什么考虑这些城市工作内容希望做什么你现在有没有在面的其他公司
  • 反问环境反问这个计划面试流程有几轮,至少两轮技术面

中兴 软件开发工程师 未来领军计划 二面

两个面试官

  • 自我介绍
  • 意向城市,你家乡在哪,你有没有女朋友,女朋友在哪座城市?
  • 你自己认为你个人的优缺点是什么?
  • 你个人遇到的最大的挫折是什么?你觉得自己抗压能力怎么样?
  • 遇到项目优化的情况,你的解决思路是什么?如果你没办法完成优化你会怎么办?
  • 你有过支持别人的经历么?
  • 你觉得自己的领导能力怎么样?
  • 你的想法跟领导有分歧,该怎么解决?你的领导如果不在技术岗多年,怎么办?
  • 如果你在现场,项目崩溃了,3天内需要你解决这个问题,怎么解决?
  • 你有很多任务,领导安排的,领导的领导安排的,同事安排的,你的时间怎么安排?
  • 意向薪资,目前手里有没有别的offer,考不考虑在目前这家实习的公司转正?
  • 你对中兴的了解是什么
  • 反问环节业务内容

面试完几周挂了

壁仞科技 AI软件开发工程师 一面

面试时间30分钟

  • 自我介绍
  • 介绍一下你常用的linux命令
  • 你makefile写的多么
  • 编译遇到undefined symbol情况你怎么解决的
  • 遇到段错误你怎么排查问题的
  • 你python调用C++生成的代码怎么做的(答了一下Cython的使用方法
  • C++ 继承和多态
  • C++ vector相关,内存释放怎么做我们常用的操作clear()和erase(),实际上只是减少了size(),清除了数据,并不会减少capacity,所以内存空间没有减少。那么如何释放内存空间呢,正确的做法是swap()操作。①可以利用swap()方法去除vector多余的容量:vector<T>(x).swap(x);其中,x是当前要操作的容器,T是容器的类型。②利用swap()方法清空vector容器:当 swap() 成员方法用于清空 vector 容器时,可以套用如下的语法格式:vector<T>().swap(x)。https://zh.cppreference.com/w/cpp/container/vector/shrink_to_fit
  • C++智能指针介绍一下
  • 一个单例模式怎么实现
  • C++多线程编程,你一般怎么做的
  • 对硬件相关了解么,我们这边很多需要软硬结合的
  • 反问业务范围

至今无后续

帆软科技 后端工程师 笔试

  1. 一本书里有100万单词,判断其中可能写错的单词有哪些,并给出可能正确的实现,分析相应的时间和空间复杂度。
  2. 有一个数据表,有三个字段A,B,C,一共1000万行,字段A中不同的值有100万个,字段B中不同的值有10万个,以A字段为行维度,B字段为列维度,对字段C做求和运算,得到一个100万行,10万列的一个交叉表。在浏览器段显示这个交叉表时每页显示100行,10列,那么浏览器端开始计算这个交叉表,然后显示第一页的数据以及总页数的时间和空间复杂度是什么样?在浏览器输入页码,返回对应页码数据的时间和空间复杂度是什么样。

至今无后续

友塔游戏 游戏服务端工程师 笔试

  1. 输入一个n*n的图,图中有不同颜色的球,点击一个球,会使得相同颜色的球爆炸(像连连看那种),每个位置不一样,请给出点击得到最大价值的一种方式.
输入
5
颜色图
1 1 1 2 3
1 1 1 2 3
1 1 2 3 1
1 1 3 1 1
1 1 2 1 1
价值图(可能不一样,以下只是例子)
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1

输出
12
1 1 1
1 1 1
1 1
1 1
1 1 加起来
  1. 区间覆盖
  2. 有一张 n个节点 m条边构成的的无向图 (注意该图并不保证所有节点连通,且图中可能成环) , 节点标记为1.2.3...N,在2之后的节点上,每个节点都存在无限数量的价值为Ai的珠宝 现在有一个小偷,从节点1出发,去各个节点上偷取珠宝,已知他身上只能带一个珠宝,且偷到珠宝后必须放回节点1,假设偷取/放下珠宝不消耗时间 移动到相邻节点消耗1单位时间,请问在k单位时间内小偷能偷到最大多少价值的珠宝 (放回节点1的珠宝才算偷到)

打家劫舍问题图论版本

输入描述:输入第一行三个元素,分别是节点数n,边数m,时间k 第二行为2到n上珠宝的价值 第三行及之后,代表每一条边的信息,表示这两个节点之间有边相连

输出描述:输出为k时间内能偷到的最大珠宝价值

  1. 给一个n*m的矩阵游戏规则如下,玩家依次从第一行开始往后选取财宝,如果选取了a[i][j]位置的财宝,那么a[i+1][j-1],a[i+1][j+1]位置的宝箱就会被引爆,就不能被选取。

输入描述

第一行输入整数n和m 0<n<=10,0<m<=10,表示有n行和m列,接下来n行,每行输入m个整数

输出描述

求最后玩家能够获取到的最多的财宝是多少?

输入
2 3
3 2 1
1 2 3
输出
8

友塔游戏 游戏服务端工程师 一面

面试20分钟

  • 无自我介绍直接开始
  • HTTPS客户端项目优化思路
  • cache和buffer有了解么
  • Linux free操作以后怎么查看
  • MYSQL索引相关请介绍一下
  • explain语句, Using filesort怎么优化16 | “order by”是怎么工作的?-极客时间11 如何判断一个SQL语句是否有性能问题?-慕课专栏
  • 查询玩家的关卡数据,玩家好友的特定一关的关卡数据建立 玩家id-关卡的联合索引
  • redis高性能的原因
  • redis的zset数据结构底层实现
  • 看你也比较喜欢玩游戏,为什么选择服务端而不是客户端

友塔游戏 游戏服务端工程师 二面

面试时间25分钟,面试官比较和蔼,无自我介绍环节

  • 聊我的项目优化思路
  • 只考虑C++开发么,不考虑其他语言么?
  • 了解C++智能指针底层原理吗,介绍一下
  • 如果你来设计一个智能指针,你会考虑哪些地方02 | 自己动手,实现C++的智能指针-极客时间
  • 面对大量的读写请求你怎么处理
  • 怎么设计一个读写锁如何理解互斥锁、条件锁、读写锁以及自旋锁? - 邱昊宇的回答 - 知乎如何理解互斥锁、条件锁、读写锁以及自旋锁? - 知乎

  • 反问环节在做什么游戏,我进去以后可能做什么

二面完一小时通知进行人事面

OPPO 系统工程师 笔试

20道选择(40分),3道编程(60分)

  1. 第一行输入正整数n和q, 代表数组的大小和操作次数。第二行输入n个正整数ai,代表小欧拿到的初始数组。接下来的q行,每行输入两个正整数i和x,代表将第i个元素变为x

这道题使用 long long 就可以过,经验

1 ≤ n, q ≤ 10^5

1 ≤ i ≤ n

1 ≤ ai, x ≤ 10 ^ 9

输入
5 3
1 2 3 4 5
2 3
3 3
5 1

输出
16
16
12
  1. 给一个矩阵左下角坐标a,b,右上角坐标c,d给一个圆心坐标x,y,求覆盖圆的最小面积,cpp实现,π取3.1415926
#include <iostream>
#include <cmath>
using namespace std;

const double PI = 3.1415926;

int main() {
    int a, b, c, d, x, y;
    cout << "Enter the coordinates of the lower left corner of the rectangle (a, b): ";
    cin >> a >> b;
    cout << "Enter the coordinates of the upper right corner of the rectangle (c, d): ";
    cin >> c >> d;
    cout << "Enter the coordinates of the center of the circle (x, y): ";
    cin >> x >> y;

    // 计算圆心到矩形四个顶点的距离
    double dist1 = sqrt(pow(x - a, 2) + pow(y - b, 2));
    double dist2 = sqrt(pow(x - a, 2) + pow(y - d, 2));
    double dist3 = sqrt(pow(x - c, 2) + pow(y - b, 2));
    double dist4 = sqrt(pow(x - c, 2) + pow(y - d, 2));

    // 计算圆的半径
    double radius = max(max(dist1, dist2), max(dist3, dist4));

    // 计算圆的面积
    double area = PI * pow(radius, 2);

    cout << "The minimum area required to cover the circle is: " << area << endl;
    return 0;
}
  1. 输入一个数组,该数组的所有乘积2进制末尾至少有k个0,输出2进制末尾为k个0的最短长度。

第一行输入两个正整数n和k

第二行输入n个正整数ai。

分解成子问题:1. 存起来每个数2进制末尾的个数(注意加起来就是乘积的2进制末尾个数),把每个数的2进制数都记录下来 2.给定一个数k,找到数组中大于等于k的最短连续子数组。(滑动窗口)

#include <iostream>
#include <vector>
using namespace std;

int countTrailingZeros(int n) {
    int count = 0;
    while ((n & 1) == 0) {
        n >>= 1;
        ++count;
    }
    return count;
}


int main() {
    int numZeros = 0;
    for (int num : nums) {
        numZeros += countTrailingZeros(num);
    }

    if (numZeros < k) {
        return -1;
    }
}
#include <iostream>
#include <vector>
#include <queue>

using namespace std;

int shortestSubarray(vector<int>& nums, int k) {
    int n = nums.size();
    vector<int> prefixSum(n + 1, 0);
    for (int i = 0; i < n; i++) {
        prefixSum[i + 1] = prefixSum[i] + nums[i];
    }
    int ans = n + 1;
    queue<int> monoQue;
    for (int i = 0; i <= n; i++) {
        while (!monoQue.empty() && prefixSum[i] - prefixSum[monoQue.front()] >= k) {
            ans = min(ans, i - monoQue.front());
            monoQue.erase(monoQue.begin());
        }
        while (!monoQue.empty() && prefixSum[i] <= prefixSum[monoQue.back()]) {
            monoQue.pop_back();
        }
        monoQue.push_back(i);
    }
    return ans == n + 1 ? -1 : ans;
}

int main() {
    vector<int> nums = {2, 3, 1, 2, 4, 3};
    int k = 7;
    int ans = shortestSubarray(nums, k);
    cout << ans << endl; 
    return 0;
}

这里使用了前缀和和单调队列的思想,时间复杂度为O(n),其中n为数组长度。具体思路如下:

1. 首先计算出数组的前缀和,即prefixSum[i]表示nums[0]到nums[i-1]的和。
2. 初始化一个空的单调队列monoQue,用于维护前缀和的单调性,队列中存放的是前缀和的下标。
3. 遍历前缀和数组prefixSum,对于每个位置i,做如下操作:
   - 如果队列不为空并且当前前缀和减去队列头部的前缀和大于等于k,则更新答案ans为当前下标i减去队列头部的下标,并弹出队列头部;
   - 如果队列不为空并且当前前缀和小于等于队列尾部的前缀和,则弹出队列尾部;
   - 将当前下标i插入队列尾部。
4. 最后如果答案ans未被更新,则返回-1,否则返回ans。

这个算法的时间复杂度为O(n),空间复杂度为O(n),其中n为数组长度。

OPPO 系统工程师 一面

被面试官吐槽项目经历太少,多深入学习一下安卓的架构,面试时间30分钟

  • 自我介绍(面试官让我介绍一下实验室的项目讲了我在实验室做的横向项目
  • 面试官说我们来考察计算机基础(这个环节基本是我在说你对JAVA了解么说一下C++常用的数据结构C++怎么解决线程冲突的方式你知道哪些排序算法,它们是怎么排序的你知道epoll的原理么hashmap插入的时间复杂度
  • 你说你经历过最难的问题,你是怎么解决的
  • 你有没有论文,你是学硕还是专硕
  • 反问环节问他们业务内容安卓framework层,建议我学习安卓从上层应用层出发,由上至下

OPPO 系统工程师 二面

面试了25分钟

  • 安卓系统架构理解
  • 相机拍照流程介绍,log分析
  • TSAN工具介绍
  • 动态链接库和静态链接库理解
  • 导出动态链接库中,有的函数你不想暴露给外面使用,有什么方法
  • HTTPS客户端项目优化思路
  • 生产者消费者模式理解
  • 你对系统,还是服务端还是底层,哪个方向的工作感兴趣
  • 反问
  • 想问问工作内容和职责

暂无后续

韶音科技 嵌入式软件开发 HR面试

面试20分钟

  • 自我介绍
  • 学校经历,考研原因
  • 为什么经历都有点短,找实习的目的是什么
  • 为什么想来深圳
  • 感觉你的经历不适合投嵌入式,为什么考虑投嵌入式
  • 对韶音的了解
  • 反问环节流程两轮技术面后,再进行简历筛

至今无后续

元戎启行 软件工程师 一面

*********************************

作业帮 后端软件开发 笔试

  1. 输入四位整数,每位数字都加上五,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。输入1234,结果9876。使用cpp实现
#include <iostream>
using namespace std;

int main() {
    int num;
    int digits[4];

    // 读取四位整数
    cin >> num;

    // 分离各位数字并加上5
    for (int i = 0; i < 4; i++) {
        digits[i] = (num % 10 + 5) % 10;
        num /= 10;
        std::cout << digits[i] << " ";
    }

    return 0;
}
  1. 322. 零钱兑换
  2. 695. 岛屿的最大面积

它的输入是字符串,注意处理输入

输入:
0,0,1
0,1,1

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main() {
    vector<vector<int>> arr;

    // 读取输入
    string line;
    while (getline(cin, line)) {
        vector<int> row;
        size_t pos = 0;
        string token;
        while ((pos = line.find(",")) != string::npos) {
            token = line.substr(0, pos);
            row.push_back(stoi(token));
            line.erase(0, pos + 1);
        }
        row.push_back(stoi(line));
        arr.push_back(row);
    }

    // 输出数组
    for (const auto& row : arr) {
        for (const auto& value : row) {
            cout << value << " ";
        }
        cout << endl;
    }

    return 0;
}

作业帮 后端软件开发 一面

面试时间48分钟

  • 寻找旋转排序数组中的最小值 II
  • C++ vector 扩容机制
  • C++ map 底层数据结构,红黑树插入和查询时间复杂度
  • 进程的内存布局
  • 进程和线程区别
  • MySQL索引你了解哪些
  • 如何查询最热门的查询URL(注意可能有重复)(10亿个url,每个url 64 B,内存1GB分治法,并且保证同一个url放到同一个文件中,每个文件取top100到小顶堆
  • HTTPS客户端项目优化,线程池优化(非活跃的时候怎么搞
  • 反问环节

至今无后续

埃科光电 软件开发 笔试

用的牛客,代码题没有测评通过,是那种写笔记形式的

选择10道,10分

  • ARP协议
  • 。。。

问答题,5道,90分

  1. 写一种常用的排序算法,常见思路 10分
  2. C++几种智能指针的常用场景 10分
  3. 内存泄漏检查方法 10分
  4. 给一个数组,返回顶峰,类似这样:[1, 3, 2] 返回3 30分
  5. 输入两个元素,1.step步数, 2.数组长度 ilen, 从索引0出发,返回索引0位置的方案有多少种?30分

鼎阳科技 嵌入式开发 笔试

  1. 已知有如下界面,请设计这些界面的类图。提示:只需描述设计思路即可,可使用文字+框图的方式描述 (按你的理解定义所需要的类;且描述类之间的关系)
界面1
频率  xxx
幅度  xxx
偏移量 xxx
相位 xxx


界面2
脉宽 xxx
上升沿 xxx
延时 xxx

后续可能会出现新的与界面1,界面2类似的界面需求:可能有类似的界面n

  1. 如下代码有哪些问题?
int main( void ) {
    char *str = NULL;
    *str = get memory ();
    printf( str );
}
char * get memory( void ) {
    char p[20];
    memcpy(p,"hello world",11)
    return p;
}
  1. 64位系统中,下面这段代码输出什么内容?
char*p="Hello";
printf("size=0x%08x,len=%d ",sizeof(p).strlen(p));
  1. 数组(43,29,45,49,3866,25,53]进行快速排序,请写出首次快速排序的完整过程
  2. 2+ (9+6/3-5)*4转化为后缀表达式是什么?
  3. 已知某结构体指针some_struct *p;表达式(unsigned long)(p+sizeof(some_struct))-(unsigned long)p;的值最可能是:请输入[A、25 B、80 C、100 D、144]并请说明理由。

选D,指针p+1的值是指针p加一个结构体的内存,指针p+sizeof的值是p+结构体内存的平方;结构体按最大成员变量的长度做对齐,12可以看成3个int

亿联网络 Go工程师 笔试

操作系统中常见的两种文件访问方法:顺序,随机

go的切片由哪三个字段组成?

go函数参数传递方式?

go的并发原语,用于在多个goroutine中通信的是什么?

go使用什么可以捕获panic么

go中哪个关键字应用于接口中声明方法

go中哪个数据类型表示unicode

go的接口类型如何实现,类型继承,类型嵌入,duck typing还是泛型?

影石 移动端C++开发 笔试

  1. weak_ptr的使用,解决循环引用问题(修改代码中的问题)
  2. 针对重复字符串实现一种优化长度转换。比如IIISSTTAAAA转变为I3S2T3A4。如果压缩以后反而更长,返回原来的。使用cpp实现
#include <iostream>
#include <string>

std::string compressString(const std::string& str) {
    if (str.empty()) {
        return "";
    }
    
    std::string compressedStr;
    char currentChar = str[0];
    int charCount = 1;
    
    for (int i = 1; i < str.length(); i++) {
        if (str[i] == currentChar) {
            charCount++;
        } else {
            compressedStr += currentChar + std::to_string(charCount);
            currentChar = str[i];
            charCount = 1;
        }
    }
    
    compressedStr += currentChar + std::to_string(charCount);
    
    if (compressedStr.length() < str.length()) {
        return compressedStr;
    } else {
        return str;
    }
}

int main() {
    std::string str = "IIISSTTAAAA";
    std::string compressedStr = compressString(str);
    std::cout << compressedStr << std::endl;
    return 0;
}
  1. 146.LRU缓存. - 力扣(LeetCode)

字节跳动 后端开发工程师(直播) 一面

面试时间50分钟,面试官人挺好,可惜我八股太废物了,得多多努力了

  • 先说了一下今天的面试流程
  • 自我介绍
  • 你觉得哪个项目或者经历对你能力提升最大,介绍一下
  • 询问HTTPS客户端项目优化思路
  • GET和POST区别
  • 键入网址到网页显示,期间发生了什么?尽可能详细描述这个过程
  • Cookie和Session区别cookie和session的区别(全面总结) - 掘金19 | 让我知道你是谁:HTTP的Cookie机制-极客时间
  • 如果让你设计一个直播用的协议,你会怎么设计?
  • 你知道有哪些索引,可以说一下么MySQL 的索引可以从不同的角度进一步划分。比如说根据叶子节点是否包含数据分成聚簇索引和非聚簇索引,还有包含某个查询的所有列的覆盖索引等等。数据库使用索引遵循最左匹配原则。但是最终数据库会不会用索引,也是一个比较难说的事情,跟查询有关,也跟数据量有关。在实践中,是否使用索引以及使用什么索引,都要以 EXPLAIN 为准。
  • 主键索引和唯一索引区别
  • 主键索引和二级索引哪个快,为什么呢
  • 联合索引 where a or ...,该怎么优化10 为什么我明明创建了索引,SQL却无法用到?-慕课专栏
  • redis有哪些数据结构?zset是什么
  • redis持久化的方式
  • 求两个集合的交集,你选择采用什么数据结构
  • 物理内存和虚拟内存区别
  • 进程之间通信方式有哪些
  • 进程和线程之间区别
  • 多线程问题,1w个用户,你只能同时取一个id得到年龄的接口,怎么处理?如果有的线程执行快,有的执行慢?
  • 最长回文子串

字节跳动 后端开发工程师(直播) 二面

面试时间1小时

  • 自我介绍
  • 内存池是怎么设计的
  • HTTPS客户端项目优化
  • HTTP/3.0 你了解它的原理吗
  • FIN_WAIT2状态你了解么
  • TCP和UDP头部区别,说一下TCP头部有哪些字段,尽可能多
  • select/poll/epoll原理你知道么,epoll是阻塞的还是非阻塞的
  • 零拷贝技术你有使用过么,说一下它的原理
  • 如果协议依靠特殊字符来分段有什么问题
  • aof持久化原理,rdb持久化原理,它们的优缺点?怎么改进(我说了一下混合持久化的方式
  • 你了解mysql的索引设计么,下面这个索引该如何设计
  • Select * from t1 where a = 'x' and b != 'x' and c = 'x' order by d desc limit 0, 10
  • 智力题:有三张扑克,一张红桃,两张黑桃,三张牌都在C这里。选到红桃明天可以不用上班。A抽了一张牌,然后C翻开手里一张牌发现是黑桃,如果你是A,你会选择跟C手里没有被翻开的那张牌交换,还是不交换
  • 验证二叉搜索树

第二天通知挂了

柠檬微趣 C++服务端 笔试

这家应该是挂了,我做的太菜了,题目重复率高,可以提前在牛客搜搜

  1. 组合数,给定n和s,n个数字,这n个数字中有多少种情况相加之和等于s,不同位置相同的数视为不同。
  2. Leetcode第10题 正则表达式匹配 和 44题 通配符匹配 合体,支持 '?' 和 '*' 和 '.' 的匹配
  3. 野猪骑士,下一个较大元素的最小值(用单调栈可以骗分16%
  4. 排行榜,要支持ADD, UPDATE, SERACH这些操作,有时间复杂度要求

中望 C++软件开发 笔试

题目重复率高,可以在牛客提前搜搜

// 下面这段代码应该是陷入死循环无法退出
#include <map>

int main() {
    std::map<int, int> m;
    m[0] = 1;
    for (auto it = m.begin(); it != m.end(); ++it) {
        m[it->second] = it->second + 1;
    }
}
  • 删除排序链表中的重复元素
  • 最大回文数字
  • 卡车上的最大单元数

#提前批##C++##字节跳动##后端面经##后端#
全部评论
对着这个面经整整补习了一周
1 回复 分享
发布于 2023-08-01 16:20 上海
请问中兴二面是怎么知道挂了呀 有通知吗
点赞 回复 分享
发布于 2023-07-23 19:55 江苏
大神
点赞 回复 分享
发布于 2023-07-23 22:46 江苏
真的强
点赞 回复 分享
发布于 2023-07-23 23:44 广东
真的强啊大佬
点赞 回复 分享
发布于 2023-07-25 16:39 陕西
m
点赞 回复 分享
发布于 2023-07-26 14:13 黑龙江
dalao这么强至少tplink能拿个很高的sp了吧
点赞 回复 分享
发布于 2023-07-26 17:46 广东
m
点赞 回复 分享
发布于 2023-07-27 23:40 湖北
真大佬
点赞 回复 分享
发布于 2023-07-28 00:02 浙江
为什么咱俩中望的题不一样啊,我的是选择+填空+3道算法
点赞 回复 分享
发布于 2023-07-30 16:30 黑龙江
大佬
点赞 回复 分享
发布于 2023-07-31 10:01 重庆
m
点赞 回复 分享
发布于 2023-08-01 23:31 北京
大佬是985吗
点赞 回复 分享
发布于 2023-08-09 17:12 广东
点赞 回复 分享
发布于 2023-09-05 15:49 北京

相关推荐

评论
49
305
分享
牛客网
牛客企业服务