📍面试公司:小鹏汽车🕐面试时间:8.31💻面试岗位:效能部门bazel c++❓面试问题:1.自我介绍2.开场讨论:我们聊了聊普通消费者对自动驾驶的认知,以及L1~L5级别自动驾驶的区别。3.C++基础:volatile关键字的作用(防止编译器优化,适用于多任务共享变量或寄存器状态判断)、多态的实现原理(涉及虚函数表Vtbl和虚表指针Vptr)、多重继承下的多态、右值引用(主要用于移动语义和完美转发)以及智能指针(unique_ptr, shared_ptr, weak_ptr 的区别和RAII思想4.效能部门的构建系统(如Bazel)需要充分利用多核资源谈谈你如何使用C++的多线程库(如std::thread, std::async)或同步原语(如std::mutex, std::atomic)来优化编译、测试或资源调度任务的并行性,并如何避免死锁和数据竞争。5.请阐述你对Bazel核心概念(如WORKSPACE, BUILD文件,依赖图)的理解。是否有过扩展Bazel(如编写自定义规则或宏)来满足特定项目构建、测试或部署需求的经验?6.如何利用机器学习模型(如基于历史代码库训练的模型)对代码质量、测试覆盖率或潜在性能瓶颈进行静态分析并提供智能修复建议?7.设计一个高效的 CI/CD 流水线请从系统架构角度,描述如何为大型C++项目设计一个高效、可靠的CI/CD流水线。你会考虑哪些关键环节(代码检查、编译、单元测试、集成测试、部署)?如何确保其可扩展性和稳定性?🙌面试感想:问的问题和部门的工作内容高度相关,需要深入理解基础,确保对C++核心机制(内存模型、对象生命周期、多态实现、模板等)和现代特性有扎实理解,此外还需要熟悉效能领域,复习构建系统(特别是Bazel)、编译器原理(如编译、链接过程)、并发编程和性能分析工具的相关知识。最后思考AI的结合点,多思考AI技术(机器学习、深度学习、强化学习)可以如何应用于软件开发生命周期的各个环节以提升效能,并准备一些具体的设想或案例。