喜得头条客户端意向书,发一波头条面经
之前提前批字节跳动得后端挂了之后,正式批没投递之前接到了个电话问愿不愿意转客户端,不需要经验,当时考虑了一下就同意了,然后25号就收到了笔试,没多久就等到了面试
一面,大概四五十分钟吧
1.const和define的区别,有什么优势?
2.constexpr(这个我说不知道)
3.explicit关键字的作用
4.指针和引用的区别
5.static关键字的作用
6.进程和线程的区别
7.程序的地址保存的是虚拟地址还是物理地址?
8.虚拟地址怎么映射到物理地址的?(这个也说不知道)
9.知道mmap吗?(这个也没答上来)
10.怎么让linux内一个文件的大小变为二倍?(这个也不会😂)
11.算法题:找出一个字符串最长不包含重复字符的字串的长度。(当时和面试官讨论了半天,面试官说我写的有点和他想象的不一样,总觉得有问题,但是还找不到问题,然后就结束了)
感觉自己一面答得不太好,可能没啥二面的机会了吧,没想到居然安排二面了,大概一面结束半小时就给我打电话安排二面,但是当时在做笔试,没接到,笔试结束打回去的,当天就进行了二面
二面,也是四五十分钟
1.N个长度为K的有序链表合并,时间复杂度,空间复杂度(用的归并,当时面试官还问时间复杂度和空间复杂度还能优化吗,想了一下想不到,然后面试官说他也不知道怎么优化😂)
2.一些虚函数相关的函数的调用
3.带有虚函数的派生类的内存分布
4.reinterpret_cast能转换指针吗?
5.堆和栈都是存什么数据的,怎么存储的?
6.函数的参数除了存在栈里,还能存在哪里?
7.栈里除了存函数参数和局部变量还能存放什么?(临时变量)
8.滑动窗口和拥塞窗口
9.vector底层怎么进行内存扩容的?
10.数组和链表的区别
11.知道自旋锁吗?和互斥锁有什么区别?
12.和那些有经验的客户端开发比有什么优势
感觉二面回答的还行,二面结束的时候特意问了面试官多久能出结果,面试官说现在流程比较快,三天内就能出结果。结果我等了五六天才接到电话,安排三面,一度以为自己凉了。三面也因为面试官时间安排的问题,改了几次时间。
三面,大概半小时
1.先是一道很简单的题目:Vector<Int> vector Int target遍历一遍vector,删除和target相等的元素(当时erase还写成了erease还是面试官提醒的🤣)
2.记不太清了,反正都是一些比较基础的问题。。
3.又是一道编程题:输出一个有序数组中一个数字的第一次出现的位置或者返回-1.
4.HTTP中POST和GET的区别(这个我说对HTTP不太熟,GET命令应该是放在请求头里,POST应该是放在请求体里的)
5.然后还是一些比较基础的问题吧,记不太清了,这两天记忆里都不行了
我觉得除了HTTP那个,我回答得还可以吧
最后面试官给我说,这几天HR可能会和我聊一聊,也可能不会,让我最近几天注意电话,听完我还以为我要凉了
然后过了两天,正在准备58同城的笔试呢,然后接到一个广州的电话,还以为是BIGO的,结果一听是头条的,喜得意向书😂
整体上来说,感觉问的都还是比较基础的知识吧,也没问客户端相关的,问的编程题也是比较简单的。如果想去字节跳动的真的可以试试客户端。