大厂面经:京东嵌入式面试题及参考答案
目录
你对 ROS 了解多少?
ROS 的基本概念
ROS 的通信机制
ROS 的核心组件
ROS 的应用领域
怎么理解 C++ 中的封装、继承和多态?
封装
继承
多态
堆和栈的主要区别是什么?
内存分配方式
内存使用效率
数据存储特点
内存碎片问题
进程和线程的区别是什么?
资源分配
父进程和子进程之间的主要区别是什么?
资源分配方面
执行流程和状态方面
生命周期和作用方面
请讲解 TCP 和 UDP 协议的区别。
连接建立方面
数据传输可靠性方面
数据传输顺序方面
数据传输效率方面
适用场景方面
你所使用的 6ull 是 ARM 架构的哪个版本,有多少个核心?
ARM 架构版本
核心数量
使用 STM32 时需要关注哪些参数?
芯片型号和资源参数
时钟参数
电源参数
封装形式和引脚布局
MPU6050 有哪些可配置的参数?
陀螺仪和加速度计参数
数字低通滤波器参数
中断配置参数
电源管理参数
互斥锁、读写锁、自旋锁之间有什么区别?
互斥锁
读写锁
自旋锁
请解释线程和进程的概念。
线程
进程
进程的上下文切换是如何工作的?
保存当前进程状态
恢复下一个进程状态
切换相关的系统开销
为什么线程上下文切换比进程上下文切换开销更小?
资源共享特性
状态保存与恢复的简化
对 CPU 缓存的影响较小
进程、线程以及协程在崩溃时的表现有何不同?
进程崩溃
线程崩溃
协程崩溃
请描述 C++ 作为面向对象语言的特点。
封装性
继承性
比较指针与引用的不同之处。
定义和本质
可变性和重新赋值
操作和语法
空值和合法性
应用场景
TCP/IP 协议中的三次握手和四次挥手过程是怎样的?
三次握手
四次挥手
为什么 TCP 连接终止时需要四次挥手?
半关闭状态的存在
确保数据的完整传输和确认
C++ 中的 map 容器有哪些类型?它们之间的异同点是什么?各自的优缺点又是什么?插入和查找的时间复杂度是多少?
map 容器类型
异同点
优缺点
插入和查找时间复杂度
C++ 和 Java 之间有哪些主要区别?
内存管理
语言特性和语法
执行效率和性能
平台兼容性和可移植性
解释反射的原理及其优缺点。
反射原理
优点
缺点
常见的垃圾回收算法有哪些?
标记 - 清除算法
复制算法
标记 - 整理算法
分代收集算法
如何理解垃圾回收机制中的分代思想?
分代的依据
代的划分和特点
分代的优势
解释 thread local 的原理,并讨论内存泄漏的问题,同时解释 transmittable thread local 的原理。
thread local 原理
Thread Local 内存泄漏问题
Transmittable Thread Local 原理
HTTP 状态码的意义是什么?你是如何规定接口的状态码的?
HTTP 状态码的意义
接口状态码规定
C++ 线程池的参数应该如何设置?
线程数量参数
任务队列参数
线程存活时间参数
C++ 中等待队列过大或过小会产生什么影响?理想的设置值应该是多少?
等待队列过大的影响
等待队列过小的影响
理想设置值的考虑因素
介绍一些 C++ 的新特性,并谈谈你对智能指针的理解。
C++ 新特性
对智能指针的理解
请描述 C++ 的三大特性,并解释你对它们的理解。
封装
继承
多态
多态性的原理是什么?
虚函数表机制
继承和重写的关系
多态性在内存和运行时的体现
列举并解释一些常用的软件设计模式,并并用 C++ 实现一个单例模式。
常用软件设计模式
C++ 实现单例模式
你对 ROS 了解多少?
ROS 的基本概念
ROS(Robot Operating System)是一个用于编写机器人软件程序的灵活框架。它提供了一系列的工具、库和约定,方便开发者高效地构建复杂的机器人应用。ROS 不是传统意义上的操作系统,它构建在现有的操作系统之上,如 Linux,为机器人开发提供了更多的功能和便利性。
ROS 的通信机制
- 话题(Topi