字节抖音客户端开发面经(一面)

10月18号面的,部门是抖音iOS客户端基架,面试官说是不怎么涉及业务实现的,主要语言是OC和Swift。

时长是一个半小时,被狠狠拷打了

本人技术栈是游戏客户端,属于是完全不匹配,所以面试官也主要围绕C++以及408方面的问题(也不知道为啥HR要把我捞起来面这个岗位)

头半个小时:项目拷打,主要问了在微众银行和腾讯的两段实习都干了些什么,但因为之前实习的都是游戏客户端,所以感觉有点鸡同鸭讲,我讲我的面试官就一直哦哦哦。

一些和简历上相关的问题:

  1. Protobuf的编码、原理
  2. 在微众银行的实习里面做的iOS端的插件都干了什么,怎么做的

可能是看我是游戏方向的所以也问了一些渲染相关的八股:

  1. 介绍一下渲染管线
  2. 如何渲染一张图片到屏幕上

中间半个小时:计网+编译原理八股拷打,下面是还记得的题目

  1. 为什么TCP断开连接要设计为四次挥手
  2. 在TCP断开后如何保证真的断开了?会不会出现某一方发送了FIN数据包结果在路上丢失的的情况?(不会)
  3. 一个网址输入到浏览器到最后渲染出来的全过程
  4. 详细介绍DNS协议
  5. C++编译的几个步骤(预编译、编译、汇编、链接)
  6. 编译这个步骤中间发生了什么?
  7. 介绍一下静态链接和动态链接
  8. 你觉得静态库和动态库编译出来哪个大,为什么?(问的不是最终的exe谁大,而是同样的库,lib文件和dll文件哪个大,大致猜了一下)
  9. 编译器在编译过程中会对程序做一些怎样的优化?
  10. 知道SSA(Static Single Assignment)吗?
  11. 这个SSA和编译器的什么优化技术有关系

最后半个小时是两道手撕+两道看代码题,两道手撕分别是:

  1. 实现一个shared_ptr,要求包含控制块(用于实现引用计数)、构造、移动构造、复制构造、=复制重载、=移动重载
  2. 给一个n * n的矩阵,0表示海洋,1表示岛屿,其中上下左右相邻的1视作是同一个岛屿,求最大的岛屿面积(洪水算法)

两个看代码题分别是:

  1. 问会打印出什么(3321)
class A {
public:
    virtual void F() { std::cout << "1" << '\n'; }
    void CallF() { F(); }
    virtual ~A() { std::cout << "1" << '\n'; }
};

class B : public A {
public:
    void F() { std::cout << "2" << '\n'; }
    void CallF() { F(); }
    ~B() { std::cout << "2" << '\n'; }
};

class C : public B {
public:
    void F() { std::cout << "3" << '\n'; }
    void CallF() { F(); }
    ~C() { std::cout << "3" << '\n'; }
};

int main() {
    A* p = new C();
    p->CallF();
    delete p;
    return 0;
}

问是否会存在死锁的可能性

个人认为不会出现死锁,就假设这个mutex是可以被复制的(std::mutex是没有复制构造函数的所以不能被复制,但我没用过pthread,所以不太确定),我认为m和mutex本身就不是同一把锁,希望有大佬来解答。

class Test {
    pthread_mutex mutex;
    
public:
    void test() {
        pthread_mutex m = mutex;
        
        m.lock();
        // do something
        m.unlock();
    }

    void test1() {
        mutex.lock();
        // do something
        mutex.unlock();
    }
};

纯属为了查漏补缺面的这个岗位,毕竟网上都说客户端死路一条况且已经接了腾讯游戏客户端的意向,所以面前说实话也没太复习,有无二面都无所谓。

希望这个帖子能帮面这个岗位的小伙伴一点忙,顺便求个小花花啦

#面试帮助##字节跳动##25届应届生##面经##牛客解忧铺#
全部评论

相关推荐

10-19 10:28
已编辑
西南石油大学 后端工程师
团孝子已上线feeling:面了很多家公司,能感受到目前只有小公司+外包喜欢问八股。大厂虽然也问八股,但是是从实习、项目中进行提问,并且大厂会问很深,面试官也会对你的回答进行思考➕追问,所以准备大厂面试前一定要备好相关资料。对于算法,我做的是codetop前100+力扣hot100+力扣高频150,面试中实感hot100就足够,基本上只要是hot100就秒答。对于项目和八股,我做的也是烂大街的星球项目,八股则是看小林和问ai,自己也写了很多技术博客和画了很多思维导图,并且自己也尝试用嘴巴说出来,不只停留于纸面。运气也很重要,必须要让面试官/HR看到简历才行,所以建议投递时间是下午两点。tl:第一岗位9.9&nbsp;投递9.10&nbsp;一面(一面评价:最近见过最强的大三,结束五分钟后约二面,都晚上九点了不下班吗)9.11&nbsp;二面(三道算法a出两道,反问评价:经验不够等横向,我实习生要啥经验)9.21挂(实习时间过短+其他原因,想要一年实习的,为什么不招个正职)第二岗位10.10投递10.11约面(主管打电话,说看到我之前投递记录了想要我挂qa职进去干后端,同意)10.14&nbsp;一面(无八股,主动说确实很强,意愿很强)10.16&nbsp;oc其余,友邦,东软,东华,惠择,用友oc已拒京东测开一面挂(投后端被测开捞)腾讯测试已拒(投后端被测开捞)ps:表扬惠择的主管面,没怎么问技术(可能是一面面试官沟通过了),全程一起讲大道理,解答了心中很多疑惑,也告诉我以面试官角度来看怎么选候选人,如果可以下次一定选惠择
HeaoDng:美团好像可以触发一面通
点赞 评论 收藏
分享
评论
18
50
分享

创作者周榜

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