暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

浙江大华嵌入式面经

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

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

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

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

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.最后反问阶段

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


文章转载自春哥的嵌入式小世界,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论