浙江大华 嵌入式面经一面

我先说一下,我这个是嵌入式应用层的开发。

早上在公司接到的大华的面试,他问我什么时候有时间,我直接坦白了我在实习了,白天不行,问问可不可以安排在晚上,他答应了,安排的晚上八点,我面试完就煮了碗面吃了就开始整理,害怕等久了我就忘了。

首先说一下整体感受,面试官人挺好的,我整个面试过程也特别自信。我感觉面试官对我印象应该还行,当然,其实我也不是他问的所有东西都知道,只是我了解的不够就明说,了解的就多说些,以前面的时候多少有些紧张,现在想通了,反正也就这样,大不了面不过嘛,又不是多大个损失。可能因为我是面试老油条了,面试一点都不慌。

我还是强调一下,现在是提前批,很多大公司提前批招人就招的差不多了,所以,还是建议大家多投简历,越往后越难。

1.自我介绍

2.你刚刚在自我介绍中提到你对于网络编程和环境编程比较了解,能说说你指的网络编程是什么吗?

回答:socket编程,自己也做过一些小实验,实现了B/S通信。

3.具体讲一讲socket编程的步骤。

我是从客户端讲到服务端的,因为我面的是应用层,他对这个问得比较细。

4.你刚刚讲的是一个客户端和一个服务端的连接,有考虑过多个客户端和一个服务端连接的情况吗?

我回答了多进程的实现方式,没有问select和epoll,但还是建议大家还是去看看epoll和select,因为我面的华飞智能,他们主要是多线程和多进程开发比较多。

5.你有了解过多线程的开发吗?

我只是了解多线程的开发,但没有了解过怎么实现,但我认为,多线程和多进程的实现是类似的

6.那你说说多线程的开发?

首先调用pthread_creat()的时候传入一个函数名,在线程成功创建之后会执行这个函数。可以在函数中实现我们想要并发执行的功能。

7.在多进程和多线程编程中,一般用哪些方式来控制进程和线程对资源的访问。

一般常用互斥锁,自旋锁和信号量(还有条件变量等其他方式,多了解几个)

8.你使用过什么方式呢?

我使用过信号量,信号量相当于一个计数器,有进程访问的时候计数器减一,当进程访问完毕之后计数器加一。

9.在你使用多进程编程的时候,一般用什么方式创建进程呢?fork()还是vfork()?

这里我回答的fork()函数,vfork()没用过,不敢讲,然后问我fork()返回0的时候是哪个进程,这个肯定是子进程。

解释一下:Fork()的返回值是返回子进程的进程号,因为子进程刚创建他没有孩子,所以返回0;

10.你对C++有了解吗?

有了解过C++的智能指针和面向对象的一些特性,但没做过实际的项目,平时用C用得比较多。

11.你有了解过内存分配吗?说一下堆和栈分别储存哪些数据

讲真的,我见过问堆和栈的区别的,也见过问代码中的全局变量和局部变量以及静态变量存储区域的,第一次遇到这么问的。

我回答的是,栈主要可以存储局部变量,函数参数。堆应该是可以存储任何数据的,堆空间是程序员申请的,想往里面存储什么都可以,但是用完之后需要释放空间,当然C++智能指针不用释放,它会自动释放。

我不知道这个回答对不对,反正按我的理解就这么回答。

12.最后反问阶段

我就像往常一样,问面试官对新人的培养啥的,公司晋升制度之类的,说实话,我想不出来其他问题。

嵌入式软件工程师面试完全指南

面经一共32篇文章,12w+字数,包含全部最新的面试必问考点,4.7w+同学学习,3200+订阅,非常适合在找工作面经薄弱的同学,3500+订阅还会涨价到39.9,提前订阅提前享受,持续更新中。

原帖链接:https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM

全部评论

相关推荐

1. 自我介绍2. 项目都是自己写的吗?3. 我看你用 koa2 写后端,为什么选择它,能讲讲吗?4. 那你提到 koa2 它是不提供中间件的,你是怎么解决的?5. 中间件的原理是什么?(洋葱模型)6. 你刚刚说碰到 next() 就进入下一个中间件,那 next 只能执行同步,如果是异步的话,你是怎么处理的?(async/await,但是我发现,有的中间件需要在异步中间件之前执行,所以我用 try/catch 来处理异步中间件的异常)7. JS 异步发展史,以及它们的优缺点说一下 (回调函数--Promise--Generator--async/await)8. 你刚刚说 Promise 状态不能更改,那如果我要设计一个能修改 Promise 状态的函数,你会怎么设计?9. CSS 水平垂直居中的方法(flex、grid、绝对定位 + margin:auto、绝对定位 + 负 margin、绝对定位 + transform、table-cell)10. 你刚刚说到 flex 布局,那 flex:1 是什么意思?(flex: flex-grow  flex-shrink  flex-basis;等价 flex:1 1 0%表示元素可以均分剩余空间,可拉伸、可压缩,不依赖内容宽度,自动自适应填充布局。)11. 父容器宽是 500px,然后它左右各有两个子容器是 100px,如果设置 flex: 1,那它的宽度是多少?(500-100-100=300px)12. 说说你对浏览器缓存的理解(强缓存、协商缓存)13. 如果一个用户,他怎么去刷新都无法刷到最新版的代码,你能说下可能的原因吗?(版本号、hash等)还有吗?(我说我不知道了,面试官说还有 CDN 没有同步,我说企业才会这么干,自己写项目一般不会,我知道 cdn 是用来解决高并发的手段)14. React你熟吗?说下 React 函数组件和类组件的区别15. 怎么避免 Hooks 导致组件重新渲染?(使用 useCallback、useMemo、React.memo、useRef等等)16. 谈一下我对 React 的状态管理的理解(Redux、Mobx、Zustand,我说 Zustand 用的最多)17. React 常见的 hooks 有哪些?(useState、useEffect、useRef、useCallback、useMemo、useReducer、useContext、useImperativeHandle、useLayoutEffect、useDebugValue)18. TS 你熟吗?我们引进 TS 的目的是为什么?19. interface 和 type 的区别20. 说下 TS 里的泛型21. 我现在有十个字段,比如十个字段就要 A B C D E F G 这种。那我现在另有另外一个方法,这个方法接受的参数呢,必须是这个 interface A 里面的这个 K。就比如说你可以是 A B C 可以 A B C D 任何组合都可以,但是必须是这个 interface 里面的 A 里面的定义的。这个 K 这种类型的话是怎么去定义呢?(说实话我有点不太理解啥意思,反正我说了 keyof)``` TypeScriptinterface Obj {A: stringB: stringC: stringD: stringE: string// 其他字段...}```22. vite 用过吗?说说和 webpack 的区别。vite 的优缺点是什么23. 说说 Tree shaking(树摇) 和 Code Splitting (代码分割)的区别24. Git 你熟吗?说说 git merge 和 git rebase 的区别,什么时候用 git merge,什么时候用 git rebase?25. web3 你熟吗?(不太熟,听说过而已)26. 我看你自我介绍说了 AI,你是怎么用的?27. 除了提示词,还有什么能让 AI 更聪明?28. AI 的优缺点你说一下29. AI 发展这么快,你觉得我们以后会扮演什么角色?30. 反问基本都答上来了。面了我80分钟,我还以为稳过的
查看29道真题和解析
点赞 评论 收藏
分享
评论
2
18
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务