面经3-C++-地平线
面经3-C++-地平线
作者:xyFei
地平线一面(1h)
- 自我介绍
- 项目1 自己详细介绍
- 项目2(webServer)问线程池实现怎么发送fd Reactor实现 Epoll实现
- Linux相关
- 项目3 简单问
- 多态虚函数纯虚函数析构函数
- 内存泄漏智能指针
- C++内存哈希底层实现各种底层代码运行过程
- 设计模式
- 手撕实现STL list
- 反问
面经4-C++-快手
作者:Mao
简短写一个快手二面体验,本人车辆工程非科班双非硕首先第一点,八股很᯿要,但是,面试官已经不会直接考你八股了,而且通过一些场景题,比如他让你口述算法思路查找一个整型数组中只出现一次的数,然后你说完思路
后,问你能不能优化?
然后再让你手写代码,写完代码之后,问你写的代码时间复杂度,在内存中的空间分布如何?
然后问你,既然你说到了哈希表put是常数级别复杂度,为什么是常数级别?put是怎么计算的?其
次第二个问题,问简历项目的难点我说camerax的预览,然后面试官提问给我一个二进制数据流,这个数据如何解析?如何在磁盘保存?怎么获取图片数据流的信息?
这里我以为是说api,就把处理过程涉及的方法简单说了一下,然后面试官问,你的课程里面有没有操作系统?我说没有车辆都不涉及这些,然后面试官说没事儿,说这个问题在操作系统里面都有,然后开始给我介绍,二进制数
据有文件头描述信息存储位置图片格式等等,然后我才明白,然后面试官说没问题了,让我反问。
然后我说,感觉这些基础和实现需求没什么太大关系来着,面试官说你要往深层次想,快手这边都有自研的网络协议,自研的代码设计语言和编译器等等,说不了解基础,难以进行底层性能优化! 等等。不过最后说人几天内反馈
结果,让我耐心等总体而言,面试官技术能力很强,而且很和善,自己还需要多多加强基础知识
面经5-C++-字节跳动
- 自我介绍balabala
- C++基础
都说c++是面向对象的语言,面向对象的三个特性能 [展开] 介绍一下吗?
多态的底层实现有了解过吗?
虚函数它底层又是怎么实现的?
(场景一)有两个类它们的实例变ᰁ以及它们支持的函数方法完全相同,一个类实现了一个虚函数,它们有什
份 public 变ᰁ(一直在引导我,是一份、两份、三份)
- 内存
malloc 跟 new 有什么区别呀?
new 除了分配内存它还会比 malloc 还有其他额外的操作吗?(说了new 创建对象,但是面试官实际想说 new 操作多了一次构造函数的调用)
new 实际上是做了两件事嘛,一个是分配内存、一个是调用实例的构造函数,那有了解过 new 可以只进行一个操作嘛?比如只分配内存不调用构造函数、或者只调用构造函数不分配内存嘛?
一个代码题目不是算法题:
struct { char A;
char B;
int C;
}
struct { char A;
int C;
char B;
}
问对这两个结构体调用 sizeof 的结果分别是什么:
- STL
看你写了对STL熟悉,那智能指针你有了解过嘛?(先具体说了那三个指针,然后随口说了项目中也用到了)
举一个实际场景智能指针的例子?为什么用?怎么使用的?不用可以嘛?(这里我说了shared_ptr的实例,然后就随口说实际也用到了unquie_ptr,然后面试官又问这个指针的实例,这里其实在面试的时候
可以适当的引导面试官去问一些自己了解的内容,增加表达的内容)
刚才你提到了shared_ptr 底层是用一个引用计数来实现的共享,那还了解过其他的内存管理方式嘛?
(这里完全涉及盲区,面试官又提醒了一下)引用计数实际上是一种内存管理的策略嘛,实际上除了 C++可能需要我们手动释放嘛,其他的变成语言可能也不用实际代码编写上去关心内存的释放,实际上
也有自己的内存管理策略嘛,你还了解到其他的内存管理策略嘛?比方说 JAVA、JS(这里其实我还是不知道在瞎说,就又问了一遍,面试管提醒了一下,说JAVA的垃圾回收了解过吗?然后我一听回收直接去
说内存不足的回收策略了,完全误解了,理解的还是太浅了)
STL 里边常用的 vector 容器的扩容机制有了解过嘛?
刚才提到了2倍扩容、那为什么2倍、3倍可以嘛?
vector 的初始容ᰁ了解过嘛?什么时候会进行初次扩容?(这里有点胡说了,说初始容ᰁ是0、然后面试官反问 0 怎么扩容呢,我又改了 1,面试官就很无语了)
- 操作系统
操作系统并发和并行有什么区别?
全站分卷索引 · 152 卷
- 1代码随想录知识星球精华(最强八股文)第五版(面经篇)
- 2后端面经02-美团
- 3Java面经02-阿里ICBU
- 4Java面经-04-CVET
- 5Java面经-06-字节后端
- 6Java面经08-用友
- 7Java面经09-快手
- 83. 计算机网络
- 94. 数据库
- 105. 算法
- 11Java面经11-美团
- 121.3 java的4种引用
- 132. JVM
- 143. 操作系统
- 154. 计算机网络
- 165. 数据库
- 17Java面经13
- 18Java面经14
- 19Java面经16
- 20Java面经17
- 21Java面经18
- 22二面
- 23三面
- 24面经19-Java-字节暑期实习
- 25字节三面
- 26面经21-Java-蚂蚁暑期实习
- 27蚂蚁三面
- 28MySQL
- 29计算机网络
- 30拉链法的工作原理
- 31确定桶下标
- 32扩容 - 基本原理
- 33链表转红黑树
- 34子进程和线程的区别
- 35协程
- 36数据库
- 37哈希索引
- 38计算机网络
- 39TCP和UDP的区别
- 40面经25-Java-百度二面
- 41面经26-Java-京东一面
- 42面经27-Spring
- 43计算机基础面经28
- 44计算机基础面经29
- 45计算机网络
- 46操作系统
- 47任务调度算法
- 48数据库
- 49计算机基础面经31
- 50乐观锁两种实现机制
- 51版本号机制
- 52死锁相关问题
- 53计算机网络
- 54拥塞控制的四种方法
- 55计算机基础面经32
- 56三次握手的流程
- 57计算机基础面经33
- 58计算机基础面经34
- 59异步
- 60C++后端
- 61面经3-C++-地平线
- 62面经6-C++-国电南瑞
- 63面经7-c++后端-字节
- 64二面
- 65面经11-C++-OPPO
- 66面经12-C++-商汤
- 67SelectDB
- 68面经15-C++-中望
- 69面经16-C++-米哈游
- 70面经17-C++-旷世
- 71面经19-C++-蔚来
- 72面经20-C++-第四范式
- 73面经21-C++-TP-Link
- 74面经23-C++-猿辅导
- 75面经25-C++-文远知行
- 76面经26-C++-百度
- 77百度二面
- 78百度三面
- 79面经27-C++-ZEKU
- 80ZEKU哲库HR面
- 81面经28-C++-VIVO
- 82面经29-C++-TPLINK
- 83字节二面
- 84HR面
- 85面经32-C++
- 86TCP的粘包与拆包
- 87引入协程的原因
- 88面经34-C++
- 892. 指针与引用的区别
- 902. Nagle 算法与延迟确认
- 91数据库
- 922. MVCC-多版本并发控制
- 93计算机网络
- 94面经36
- 95面经37
- 96面经38
- 97面经39-C++-拼多多+字节
- 98字节一面【7.27】
- 99shopee测开一面【7.29】
- 100一、表面上开销
- 101面经44-京东二面
- 102Go后端
- 103二面
- 104面经3-Go-字节日常实习
- 105字节二面
- 106字节三面
- 107HR面
- 108面经5-Go-字节暑期实习
- 109字节二面
- 110字节三面
- 111面经02-测开-百度提前批
- 112二面
- 113面经06-测试-海尔智家
- 114面经07-测开-蔚来
- 115面经09-测试-中望
- 116面经10-测开-ZEKU
- 117面经12-测试-科大讯飞
- 118面经15-测开-美团暑期实习
- 119面经16-测开-外企社招
- 120Nvidia四面
- 121面经2-前端-百度日常实习
- 122面经3-前端-得物面经
- 123面经4-前端-腾讯健康
- 124面经5-前端-字节面经
- 125面经6-前端-携程前端
- 126面经7-前端-顺丰
- 127面经9-前端-比特大陆日常实习
- 128面经10-前端-抖音
- 129面经11-前端-蔚来/百度/oppo
- 130百度提前批
- 131面经12-前端-知乎暑期实习
- 132知乎二面
- 133百度二面
- 134面经2-Android客户端-大疆
- 135二面
- 136面经3-客户端-字节暑期实习
- 137字节二面
- 138字节二面(深入项目,1h)
- 139面经5-客户端-字节
- 140面经6-客户端-字节
- 141算法
- 142面经3-NLP-科大讯法
- 143面经4-NLP-科大讯法
- 144面经7-游戏算法-莉莉丝
- 145面经10-算法
- 146面经11-算法-百度pnc暑期实习
- 147百度二面
- 148抖音一面
- 149嵌入式
- 150面经3-嵌入式-芯动科技
- 151面经4-嵌入式-韶音科技
- 152面经6-嵌入式-新华三