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

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

相关推荐

双非鼠鼠会梦到大厂offer:太难了,感同身受
投递美团等公司10个岗位
点赞 评论 收藏
分享
09-27 00:29
东北大学 Java
伟大的麻辣烫:查看图片
阿里巴巴稳定性 75人发布 投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
4 32 评论
分享
牛客网
牛客企业服务