【求职上岸面试问题分享01】上海某电子 嵌入式
#面试问题记录#
一、时间线:
投递 3.13
笔试 3.15
面试 3.18
二、面试问题:
1.自我介绍
2.简历项目介绍1
3.简历项目介绍2
4.功能实现?
5.完成指标是什么?
6.成绩好?为什么没准备考研?
更看重“学以致用”的成长路径。相较于学术研究,我更倾向于通过实际项目快速提升技术深度。如果公司提供完善的内部培训机制,那就再好不过啦!
7.为什么想去外地工作,有没有考虑到4、5年回本地?
8.笔试没做好?什么原因?
9.死锁?
10.进程和线程哪个用得多?
11.还有什么想了解的?研究方向?
三、自己总结的其他高频问题:
公司简介:公司是专注于激光加工自动化领域的高新技术企业,我自己的话可能更关注嵌入式领域的部分,比如:
1.实时控制系统:如随动控制系统,需要嵌入式设备完成高精度运动控制,涉及RTOS开发、硬件驱动优化等核心技术。
2.工业级通信协议开发:如总线控制系统,需要完成 高精度、安全性 的定制化开发。(FSCUT8000超高功率总线系统)
3.智能硬件集 成:公司推出的智能卡盘、精密加工数控系统等硬件产品,均需嵌入式开发实现传感器融合、边缘计算等功能模块。
1.堆和栈的区别包括:
A. 栈(stack)是由系统自动分配的。例如,声明函数中一个局部变量int b;,那么系统自动在栈中为b开辟空间。堆(heap)需要程序员自己申请,并在申请时指定大小。
B. 堆在操作系统中有一个记录空闲内存地址的链表,当系统收到程序的申请时,系统就会开始遍历该链表,寻找第一个空间大于所申请空间的堆节点,然后将该节点从空闲节点链表中删除,并将该节点的空间分配给程序
C. 堆是向高地址扩展的数据结构,内存区域不一定连续,栈是向低地址扩展的数据结构,是连续的内存区域。
D. 堆是由 malloc() 等语句分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来很方便。栈由系统自动分配,速度较快,但程序员一般无法控制
2.关于 virtual void Draw() =0,下面说法正确的是:ACD
A. 它是纯虚函数
= 0 表示这是一个纯虚函数,它没有函数体,必须在派生类中实现。
B. 它在定义它的类中必须实现
纯虚函数在定义它的类中 不需要实现,它的存在是为了强制派生类实现该函数。
C. 定义它的类不可实例化
包含纯虚函数的类称为 抽象类,抽象类不能直接实例化,只能通过派生类实例化。
D. 如果一个类要继承一个 ADT 类,必须要实现其中的所有纯虚函数
如果一个类继承了一个抽象类(ADT 类),它必须实现其中的所有纯虚函数,否则它仍然是一个抽象类,无法实例化。
3.在 C++ 中,类的大小(sizeof)受成员变量、虚函数表指针(vptr)以及内存对齐规则的影响。以下是类 A 的分析:
类 A 的成员分析
成员变量:
int _a1:占 4 字节。
static int _a2:静态成员变量不占用类的大小,因为它存储在全局/静态区。
虚函数:
virtual void fun2():虚函数会引入一个虚函数表指针(vptr),用于指向虚函数表。
虚函数表指针(vptr)的大小
32 位系统:指针占 4 字节。
64 位系统:指针占 8 字节。
内存对齐规则
在 32 位系统中,内存对齐通常为 4 字节。
在 64 位系统中,内存对齐通常为 8 字节。
一、时间线:
投递 3.13
笔试 3.15
面试 3.18
二、面试问题:
1.自我介绍
2.简历项目介绍1
3.简历项目介绍2
4.功能实现?
5.完成指标是什么?
6.成绩好?为什么没准备考研?
更看重“学以致用”的成长路径。相较于学术研究,我更倾向于通过实际项目快速提升技术深度。如果公司提供完善的内部培训机制,那就再好不过啦!
7.为什么想去外地工作,有没有考虑到4、5年回本地?
8.笔试没做好?什么原因?
9.死锁?
10.进程和线程哪个用得多?
11.还有什么想了解的?研究方向?
三、自己总结的其他高频问题:
公司简介:公司是专注于激光加工自动化领域的高新技术企业,我自己的话可能更关注嵌入式领域的部分,比如:
1.实时控制系统:如随动控制系统,需要嵌入式设备完成高精度运动控制,涉及RTOS开发、硬件驱动优化等核心技术。
2.工业级通信协议开发:如总线控制系统,需要完成 高精度、安全性 的定制化开发。(FSCUT8000超高功率总线系统)
3.智能硬件集 成:公司推出的智能卡盘、精密加工数控系统等硬件产品,均需嵌入式开发实现传感器融合、边缘计算等功能模块。
1.堆和栈的区别包括:
A. 栈(stack)是由系统自动分配的。例如,声明函数中一个局部变量int b;,那么系统自动在栈中为b开辟空间。堆(heap)需要程序员自己申请,并在申请时指定大小。
B. 堆在操作系统中有一个记录空闲内存地址的链表,当系统收到程序的申请时,系统就会开始遍历该链表,寻找第一个空间大于所申请空间的堆节点,然后将该节点从空闲节点链表中删除,并将该节点的空间分配给程序
C. 堆是向高地址扩展的数据结构,内存区域不一定连续,栈是向低地址扩展的数据结构,是连续的内存区域。
D. 堆是由 malloc() 等语句分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来很方便。栈由系统自动分配,速度较快,但程序员一般无法控制
2.关于 virtual void Draw() =0,下面说法正确的是:ACD
A. 它是纯虚函数
= 0 表示这是一个纯虚函数,它没有函数体,必须在派生类中实现。
B. 它在定义它的类中必须实现
纯虚函数在定义它的类中 不需要实现,它的存在是为了强制派生类实现该函数。
C. 定义它的类不可实例化
包含纯虚函数的类称为 抽象类,抽象类不能直接实例化,只能通过派生类实例化。
D. 如果一个类要继承一个 ADT 类,必须要实现其中的所有纯虚函数
如果一个类继承了一个抽象类(ADT 类),它必须实现其中的所有纯虚函数,否则它仍然是一个抽象类,无法实例化。
3.在 C++ 中,类的大小(sizeof)受成员变量、虚函数表指针(vptr)以及内存对齐规则的影响。以下是类 A 的分析:
类 A 的成员分析
成员变量:
int _a1:占 4 字节。
static int _a2:静态成员变量不占用类的大小,因为它存储在全局/静态区。
虚函数:
virtual void fun2():虚函数会引入一个虚函数表指针(vptr),用于指向虚函数表。
虚函数表指针(vptr)的大小
32 位系统:指针占 4 字节。
64 位系统:指针占 8 字节。
内存对齐规则
在 32 位系统中,内存对齐通常为 4 字节。
在 64 位系统中,内存对齐通常为 8 字节。
全部评论
mark面经
mark面经
mark面经
mark面经
mark面经
相关推荐