虾皮 Shopee 高性能后端 一面
总结: 被拷打"你不了解就不问了" , 手撕题目也G了.
**1. C++ 相关**
* 请做一下自我介绍。
* 你主要使用的编程语言是 C++ 吗?
* 能介绍一下 C++17 中有哪些常用的新特性吗?
* 写 C++ 时常见的“坑”有哪些?你印象最深的是哪个?
* 如何解决不同编译单元间 static 变量析构顺序不一致的问题?
* C++ 中是否有语言特性可以解决上述析构顺序问题?
* 如果在头文件中定义一个 static 变量,会发生什么?
* 如何确保一个全局变量在程序中只有一个实例?
* 在函数中声明一个对象但不初始化,会有什么问题?(针对基本类型)
* 为什么函数内的局部变量(基本类型)如果不初始化,其值是不确定的?
* 函数内的局部变量能否被“移动”到堆上?
* 基本数据类型(如 int)是否可以通过 move 操作移动到堆上?
* 对于一个类对象,move 操作会触发什么?
* `const` 和 `constexpr` 有什么区别?
* `#define` 有哪些用法?
* 如何实现一个参数数量和类型都不固定的函数?
* 能介绍一下什么是“完美转发”(Perfect Forwarding)吗?
**2. 操作系统相关**
* 你对操作系统比较熟悉,能介绍一下存储器的层次结构吗?(从速度高到低)
* 请将存储器的访问速度进行排序。
* 有没有比 L1 Cache 还快的存储器?
* 线程间如何进行通信?
* 除了加锁,线程间通信还有哪些无锁的方式?
* 原子变量(Atomic Variables)都有哪些?
* 原子变量修改值时,有哪些接口可以使用?(涉及内存序)
* 多线程发生死锁应如何避免?
* 死锁产生的条件有哪些? (四大条件? 不会。)
* 针对死锁的各个条件,除了按顺序加锁外,还有哪些解决方案?
**3. 网络与数据库相关**
* 你了解哪些网络知识?(TCP/UDP)
* 你实现过 TCP/UDP 的网络编程(如 socket)吗? (我说没有,只是了解, “那不问了”)
* 能介绍一下 Redis 和 PostgreSQL 有什么不一样吗?
* 这两个数据库哪个更快?
* Redis 的 QPS 上限能到多少?
**二、 项目**
* 你觉得最难的地方在哪?
对于项目, 问了一个很刁钻的问题。
.....
**三、 算法与数据结构**
* 简单介绍一下数组和链表的区别。
* 从内存利用率角度看,数组和链表哪个更高?
* 数组和链表在增删改查操作上的时间复杂度有何区别?
* 堆排序可以用什么数据结构实现?
* 除了数组(vector),还可以用什么数据结构实现堆?
* 如果用数组(vector)和二叉树(如红黑树)来实现堆,它们各自的优缺点是什么?
* 删除堆中一个中间元素会发生什么?底层如何调整?
* 动态规划(DP)和分治法有什么不一样?
**四、 代码实战**
#牛客AI配图神器#
* **题目**:模拟斗地主出牌。给定一副手牌(如17张),要求计算出清所有手牌所需的最少出牌次数。牌型包括单张、对子、顺子、三带一、三带二等,其中组合牌型(如顺子、三带)可以减少出牌次数。
没做出来。
#秋招被确诊为……#
#Shopee##虾皮# #秋招# #面试#
**1. C++ 相关**
* 请做一下自我介绍。
* 你主要使用的编程语言是 C++ 吗?
* 能介绍一下 C++17 中有哪些常用的新特性吗?
* 写 C++ 时常见的“坑”有哪些?你印象最深的是哪个?
* 如何解决不同编译单元间 static 变量析构顺序不一致的问题?
* C++ 中是否有语言特性可以解决上述析构顺序问题?
* 如果在头文件中定义一个 static 变量,会发生什么?
* 如何确保一个全局变量在程序中只有一个实例?
* 在函数中声明一个对象但不初始化,会有什么问题?(针对基本类型)
* 为什么函数内的局部变量(基本类型)如果不初始化,其值是不确定的?
* 函数内的局部变量能否被“移动”到堆上?
* 基本数据类型(如 int)是否可以通过 move 操作移动到堆上?
* 对于一个类对象,move 操作会触发什么?
* `const` 和 `constexpr` 有什么区别?
* `#define` 有哪些用法?
* 如何实现一个参数数量和类型都不固定的函数?
* 能介绍一下什么是“完美转发”(Perfect Forwarding)吗?
**2. 操作系统相关**
* 你对操作系统比较熟悉,能介绍一下存储器的层次结构吗?(从速度高到低)
* 请将存储器的访问速度进行排序。
* 有没有比 L1 Cache 还快的存储器?
* 线程间如何进行通信?
* 除了加锁,线程间通信还有哪些无锁的方式?
* 原子变量(Atomic Variables)都有哪些?
* 原子变量修改值时,有哪些接口可以使用?(涉及内存序)
* 多线程发生死锁应如何避免?
* 死锁产生的条件有哪些? (四大条件? 不会。)
* 针对死锁的各个条件,除了按顺序加锁外,还有哪些解决方案?
**3. 网络与数据库相关**
* 你了解哪些网络知识?(TCP/UDP)
* 你实现过 TCP/UDP 的网络编程(如 socket)吗? (我说没有,只是了解, “那不问了”)
* 能介绍一下 Redis 和 PostgreSQL 有什么不一样吗?
* 这两个数据库哪个更快?
* Redis 的 QPS 上限能到多少?
**二、 项目**
* 你觉得最难的地方在哪?
对于项目, 问了一个很刁钻的问题。
.....
**三、 算法与数据结构**
* 简单介绍一下数组和链表的区别。
* 从内存利用率角度看,数组和链表哪个更高?
* 数组和链表在增删改查操作上的时间复杂度有何区别?
* 堆排序可以用什么数据结构实现?
* 除了数组(vector),还可以用什么数据结构实现堆?
* 如果用数组(vector)和二叉树(如红黑树)来实现堆,它们各自的优缺点是什么?
* 删除堆中一个中间元素会发生什么?底层如何调整?
* 动态规划(DP)和分治法有什么不一样?
**四、 代码实战**
#牛客AI配图神器#
* **题目**:模拟斗地主出牌。给定一副手牌(如17张),要求计算出清所有手牌所需的最少出牌次数。牌型包括单张、对子、顺子、三带一、三带二等,其中组合牌型(如顺子、三带)可以减少出牌次数。
没做出来。
#秋招被确诊为……#
#Shopee##虾皮# #秋招# #面试#
全部评论
这个手撕太难
这手撕是认真的吗?
老哥一面过了吗?
相关推荐

点赞 评论 收藏
分享

点赞 评论 收藏
分享