字节 Android 一面
- 项目拷打,主要讲清楚你在开发中的设计思路和贡献。(聊得挺长时间)
- C++基础知识
- 智能指针实现,shared_ptr、unique_ptr、weak_ptr。
- 你自己实现shared_ptr 有哪些关键的步骤。
- new、delete、malloc、free区别。(注意要答到new的具体实现【会执行对象的构造函数】,brk和mmap【malloc】,我给忘记了)
- 多态,虚函具体实现。场景:A和B是两个虚基类,如果C继承A和B,那么C对象有几个虚函数表?
- vector和list的区别。
- 左值和右值的区别。
- std::move 函数的具体实现。(移动语义:将对象转为右值,然后调用其移动拷贝构造函数)
- 宏定义和内联函数的区别。(运行在不同的阶段,是否有语法检查)
- namespace 的主要作用是什么?(命名空间保护,不污染其他文件)
- 由Android 的Binder ,聊到IPC通信。
- Android 四大组件,(我零基础,不懂
- TCP和UDP的区别。
- OSI七层网络模型介绍。每一层的协议举例说一说。
- 设计模式,结合业务谈谈你熟悉的设计模式。
- 单例模式的实现步骤,核心的几步(构造函数析构函数私有、禁止拷贝构造、赋值拷贝构造、静态返回单例的成员函数)
- 数据结构中,你比较了解的排序算法有哪些。(快排,手撕快排)
- 是否看过其他开源项目,是否看过AOSP。
- 反问,部门业务和主要技术栈。(业务保密,主要是软硬件结合......)
总结:有几个问题复习没到位。字节还是看语言基础掌握能力。许愿二面~
#面经##Android客户端##字节##秋招##C++#