字节-暑期实习-客户端 一面凉经
4.28
1,自我介绍
2,谈一谈对封装、继承、多态的理解
3,这三大特性对我们编程有什么好处(方便扩展)
4,能具体说一下怎么个方便扩展吗(比如新增功能,可以新增代码而不必重写,提高代码复用)
5,多态也是方便代码复用吗?(不知道,但我会用多态,因为在学设计模式)
6,那你写一个工厂模式吧(……我是菜鸡,工厂模式写的很烂,因为忘得差不多了,基类忘了写成抽象类或者接口)
7,你认为基类定义成抽象类还是接口比较好?有什么区别吗?
8,如果你的基类定义成interface有什么好处?
9,面向对象6大原则了解吗?开闭原则什么意思?
10,C++多态实现机制?(虚表,还好之前看过)
11,你了解静态多态吗?(不了解但我听说过,我是真的看过,但年代实在久远)
12,
class A{ public: void func(void){ cout << 'a'; } }; class B:public A{ public: void func(void){ cout << 'b'; } } ; int main(){ B b; A *a = &b; a -> func(); } //1,输出什么?为什么?b(答案是a,我当时还信誓旦旦以为自己对了,丢大脸了) //2,如果在第三行加个virtual呢?还是b(这是对的) //3,假如没有virtual修饰,sizeof(A)输出什么?为什么?1,函数是放在了一个代码区(对了) //4,如果价格virtual呢?sizeof(a)=? 指针大小,视操作系统而定
13,说一下内存中堆和栈的区别?
14,两者使用上的优劣?
15,堆本身有什么好处?
16,从线程角度来讲,能不能有多个线程同时访问同一个栈里面的内存数据?(要看是否属于同一进程,同一个进程就可以,否则不行)
17,讲一下select和epoll?(select 昨晚看过,epoll就寄了)
18,epoll用到的数据结构?(不知道)
19,epoll比select高效的原因?(寄)
20,epoll整个流程能不能具体说一下?(寄)
算法:
1,二叉搜索树,寻找最近公共祖先(秒杀)
2,二叉树,寻找最近公共祖先(做过,一时紧张忘了递归做法,做了快10分钟没做出来,申请换题,面试官说,递归比较乱,你尝试一下非递归的方法,我硬着头皮用数组做出来了 ,写得很烂,但还是对了)
反问环节:
我还需要提升哪些方面?
整体来说,面试官人很好,很礼貌,没怎么刁难我,只怪我太菜了,所以说,人还是需要卷一卷的
不说了,我去卷了
#字节跳动客户端研发实习面经##字节跳动##实习##面经##C/C++#