首页 > 字节跳动 飞书跨平台客户端开发 秋招凉经
头像
saw1113
编辑于 2020-08-19 18:53
+ 关注

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

本人双非本科,普通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";

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

祝大家好运



更多模拟面试

全部评论

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

相关热帖

近期热帖

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

近期精华帖

热门推荐