商泰面试总结(嵌入式开发)

  首先一面面试(技术面)面的不好,很多问题都不会,基础优点薄弱。其次自己b把自己往坑里带,面试官都说再往下说你要陷坑里了。好吧,面试官是个好人,我好羞愧。不过自己能看到自身的不足,认识到自己离一名真正的优秀程序员还有多远的路要走,便如茫茫黑夜能觅得一盏明灯一样的幸运。无论过与不过,都对我的成长有很大的帮助。

  下面我讲的不是面试技巧,面试技巧的确有用,但提高自己的能力更重要。下面时我总结面试官问的几个问题,如有遗漏,实属正常,因为出来时我的肚子是空白的,大脑也是空白的。

 首先面试官让我自我介绍,然后从多渠道解决问题是怎么多渠道的?我想了想,说了如果段错误,野指针之类怎么解决。好吧,我从来没有分清段错误和内存泄露有什么关系,面试官说这两者不一样,内存泄漏不会运行报错,然后我又说scanf如果漏加取地址符,编译能过,但会报段错误,面试官说这编译都会报错。

这是我运行后的结果,实验证明不加取地址符编译通过,但会报段错误。

至于内存泄露,指的是你使用完的资源没有正确的释放掉,同时其他资源不能访问这片资源,那么就会引起内存泄漏,一般的内存泄露分为对空间泄露和系统资源泄露,内存泄露会导致可使用的内存变少,内存泄露可编译可运行,不会报错,但如果内存泄露的程序块重复执行,则系统可用内存会消耗掉

段错误则是访问了不可访问的内存空间,比如说数组越界,scanf没有放取地址符, 野指针等等(这个我知道,但一紧张又混起来,都和内存有关,尴尬)

还有面试官问了我傅里叶变换,对不起,全还给老师了,我又百度了一下,瞬间勾起回忆,傅里叶变换是将时域转化为频域,在频域处理(原因:时域能观测到波形,但频域可以吧复杂的信号转化为正弦波的叠加,更易于处理),然后在通过傅里叶逆变换回到时域。

其次又问了单例模式

我没写对,再写一遍

#include <iostream>
class test
{
private:
 test()
 {
 }
 ~test()
 {
 }
 static test *p;
public:
 static test * creatP();
 static test * deleteP();
};
test * test::p = NULL;
test * test::creatP()
{
 if(p != NULL)
 {
  return p;
 }
 p = new test();
 return p;
}
test * test::deleteP()
{
 if(p != NULL)
 {
  delete p;
  p = NULL;
 }
}
int main()
{
 test *p = test::creatP();
 return 0;
}

这是懒汉式的单例模式,现场不知道为什么就写错。

最后面试官又问什么情况下多线程要加锁,我认为时共享变量要加锁,如堆,全局变量,文件描述符,静态变量等


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_26654257

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值