字节跳动 飞书跨平台客户端开发 秋招凉经

本人双非本科,普通211硕,非计算机专业。
共面了三次,今日(2020 08 19)收到感谢信。
祝大家好运。

整个过程全部使用飞书进行面试

一面(08 09,1h20min):

自我介绍
聊了半个小时的项目,其中牵扯到多线程同步和通讯,问了具体的实现方法
包括但不限于以下内容:
锁和信号量的区别,进入临界区的原则,你是如何在项目中应用这些知识的等等...

之后是基础概念:

构造函数(可否重载,深浅拷贝,调用时机,拷贝构造调用时机,重载赋值运算符调用时机)

虚函数指针和虚函数表(数据对象还是类?如何工作?如何理解多态,虚函数指针存在什么区)

内存分区(栈,DATA(bss,常量,堆,全局区...),代码区)

Qt的信号和槽是如何实现的,你自己设计怎么设计

TCP拥塞控制有什么算法?慢启动为啥指数增长

如何理解滑动窗口?简述工作机制?这种机制有没有什么问题?

TCP三次握手和四次挥手,及原因

TCP如何保障可靠传输

TCP攻击手段

常见的编码形式:ascii,utf8
汉字字节长度,最长多长,编码之间的区别

new 数组,delete没有写方括号,会出现什么情况?

二面(08 13,1h):

1:自我介绍
让我共享屏幕,开始敲代码,能写的都要去写出来
2:violent关键字的作用
3:数组指针和指针数组
4:指针常量和常量指针
5:static关键字作用
6:const关键字作用
7:作用域概念
8:继承,重载,多态
9:函数指针

两道算法:
1:反转链表:
//单链表的反转
struct LinkNode{
LinkNode * next;
int val;
};

LinkNode * ReverseList(LinkNode * head){
    if(head == nullptr) return head;
    LinkNode * Newhead; 
    LinkNode * pre = nullptr;
    LinkNode * pcur = head;
    while(pcur){
        LinkNode * Next = pcur->next;
        pcur->next = pre;
        pre = pcur;
        pcur = Next;
    } 
    Newhead = pre;
    return Newhead; 
}

2:给定一颗二叉树,找到从根结点开始,到最深叶子节点的路径,左子树为0,右子树为1
//二叉树 找到最深的叶子结点 左子树是0,右子树是1

struct TreeNode{
    TreeNode* left;
    TreeNode * right;
    int val;
};
void DFS_deep(TreeNode * root,int deep);
void DFS(TreeNode * root,string target,int deep);

int Deep = 0;
vector<string>Res;

vector<string> main(TreeNode * root){
    if(root == nullptr) return "";
    //计算深度
    DFS_deep(root,0);
    //找到深度为最深的,从根结点到叶子结点的路径
    DFS(root,"",0);
    return Res;
}

void DFS_deep(TreeNode * root,int deep){
    if(root == nullptr) return;
    deep++;
    Deep = max(Deep,deep);
    DFS_deep(root->left,deep);
    DFS_deep(root->right,deep);
}

void DFS(TreeNode * root,string target,int deep){
    if(deep == Deep) {
        Res.push_back(target);
        return;
    }
    if(root == nullptr) return target;
    string Ori = target;
    if(root->left) {
        Ori += '0';
        DFS(root->left,Ori,++deep);
    }
    if(root->right) {
        Ori += '1';
        DFS(root->right,Ori,++deep);
    }
}

第一个很简单
第二个本人第一次遇到

以上两道题目的代码都是现场敲的,这里直接贴出来
面试的时候笔记本很慢,IDE启动了半天,最后面试官让用记事本写的。

三面(08 17,45min):

三面一转前两面的风格,面试官问的问题非常基础,根本不深究,我回答完也基本不追问,直接下一个问题。

自我介绍
TCP三次握手和四次挥手,及原因
虚函数指针和虚表
HTTP和HTTPS
SSL加密
进程线程区别
进程通信方式
循环展开
linux相关

之后让我看了两道代码题。
一个关于malloc和free
一个关于char str[] = "asdfafaf";

因为一面时间有点久,很多问题都忘记了。

祝大家好运



#面经##校招##C++工程师#
全部评论
楼主,问一下跨平台客户端开发 C++是干嘛的?
点赞 回复 分享
发布于 2020-09-23 14:46
这violent关键字😂应该是volatile吧
点赞 回复 分享
发布于 2020-08-20 11:17
飞书对非科班很歧视,慎重投递
点赞 回复 分享
发布于 2020-08-19 20:39
以为客户端会简单点。。
点赞 回复 分享
发布于 2020-08-19 19:20
为啥没过?
点赞 回复 分享
发布于 2020-08-19 18:51
楼主你好,请问你是什么岗位?开发的话,是Java方向还是C++方向?或者其他语言方向~
点赞 回复 分享
发布于 2020-08-19 18:46

相关推荐

饥饿的长颈鹿就要上岸...:简历五项结构 简历只放五项内容,顺序和格式如下: 一、个人信息 只写名字、电话、邮箱 不写性别、年龄、籍贯、政治面貌、微信等额外信息 二、教育经历 格式:学校名称 | 学历 | 专业 | 就读时间 从左到右排列,一行写完 如果专业和岗位对口,写1-2行主修课程;不对口就不写 学历如果不占优势,可以把教育经历放到简历靠后的位置 三、实习/项目经历 如果没有实习经历,全部写项目经历 每条经历格式:项目名 + 岗位名 + 任职时间段 下面写三到五条工作内容 每条工作内容开头必须用四个字概括,加粗,后面跟一条完整描述 所有描述必须用STAR法则来写(情境-任务-行动-结果) 每一条都要有数据支撑和具体成果 四、个人优势 可以写获得的奖项、证书 如果奖项不够,就写你熟练掌握的技能 每条也要有具体数据或成果支撑,不能空泛堆砌 五、整体要求 一页纸,不要超过一页 个人信息只写名字加电话邮箱 贝贝试一下这个方式写简历,我虽然没收到offer,至少收到了好几轮面试
点赞 评论 收藏
分享
评论
4
32
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务