深信服二面 16min 周先生:中年微笑善良、我**应该无了
以下问题如果有答案均为GPT生成
大家一定要好好背八股文要不然就像我一样疑问三不知虽然了解过但是人家一问就露豆馅了啊啊啊啊啊啊啊感觉浪费人家半个小时好难过,人家是二十年经验的老程序员了,能面试我这种sbnc双非菜坤,我还是很荣幸的,而且听说这家公司的培养体系比较好,有点爱了,我还想说个点,大家答题的时候不要嗯啊嗯啊就是昂就是的容易把面试官和你自己的思路搞混,可以先想一想组织一下要说的话
- 在Linux中,要创建一个进程,你需要分配以下几种内存:
程序代码:这是包含程序指令的二进制文件。它通常被映射到进程的虚拟内存空间中。
数据段:包含静态和全局变量等数据。这也被映射到进程的虚拟内存空间中。
堆:这是用于动态分配内存的区域,当进程需要更多的内存时,它可以在堆中动态地分配内存。
栈:用于保存函数调用期间的临时变量、返回地址等信息。栈在进程创建时被初始化,并在运行时自动增长。
- 死锁解释一下
死锁就是多个进程无限期地等待资源而无法进行下去的状态。(我解释的磨磨唧唧的不像个男人)
- 如何避免死锁
-
避免使用多个资源:如果只使用一个资源,就不会出现资源竞争问题,也就不会发生死锁。
-
按照顺序申请资源:定义每个资源的优先级并且按照优先级顺序来申请资源,这样可以避免循环等待。
-
引入超时机制:如果一个进程不能在一定时间内获得所需的资源,就放弃该资源请求,释放已占用的资源。这样可以保证系统不会陷入死锁状态。
-
实施资源剥夺策略:当一个进程请求资源被阻塞时,操作系统可以选择回收它已经获取的资源,以便其他进程可以使用这些资源。这样可以打破资源的循环等待关系,从而避免死锁。
-
使用银行家算法:银行家算法是一种基于预测分析的死锁避免算法。它通过对进程需要和可用的资源进行预测,判断当前请求资源是否会导致死锁,并根据结果做出相应的决策。
死锁满足的四个条件:互斥、不剥夺、请求并保持、循环等待(我一下忘了超超超)
- 析构函数为啥是虚函数
是因为在继承关系中,如果基类的析构函数不是虚函数,那么当使用一个指向派生类对象的基类指针来释放内存时,只会调用基类的析构函数,而不会调用派生类的析构函数,从而导致派生类对象的部分内容无法被正确地释放,可能会造成内存泄漏等问题。
通过将基类的析构函数声明为虚函数,可以保证在销毁一个派生类对象的时候,会先调用它自己的析构函数,然后再调用基类的析构函数,确保所有对象成员都能得到正确的释放。因此,对于任何基类,只要它有可能会被用作其他类的公共接口,就应该将其析构函数声明为虚函数。
- 如何避免野指针
-
使用空指针检查:在使用指针之前,始终检查它是否为空。如果指针为空,则不应尝试访问它所指向的内存。
-
初始化指针:在声明指针时,为其分配初始值。将指针初始化为NULL或0可以确保指针不会包含任意值。
-
避免悬空指针:当一个指针引用的内存已被释放或者超出了作用域时,称之为悬空指针。为了避免悬空指针,需要正确管理内存。在使用完指针后,及时释放其所指向的内存。
-
使用动态内存分配函数:如果需要使用动态内存分配来创建对象,建议使用相关的函数(如malloc、calloc和realloc)来管理内存。这些函数会自动处理内存分配和释放,从而减少出错的机会。
-
不要复制指针:尽量避免将指针从一个地方复制到另一个地方,特别是当它们指向相同的内存块时。这样容易导致混淆和错误的内存访问。
-
在浏览器里输入一个url,向一个不懂计算机的人解释一下这个过程,底层用到哪些协议
-
大学学过哪些课程???
-
你一般怎么找资料,
我差点说成pronhub了,然后我改口说chrome结果面试官不知道chrome以为我瞎吉儿查的然后有提示我你用过谷歌吗,鹅鹅鹅饿?chrome默认就是谷歌呀???
- 你了解过那些前沿技术呢
我说联邦学习(这我只是了解过,面试官竟让我说细节woc我咋会)然后我又联系我参加过的数学建模,我们队得了个省二,然后我们用的神经网络(借鉴的代码),我其实不懂只是在数学建模论文中说用到过,然后他就可劲问问问,问我知不知道lstn。。。这直接往我脸上开个孙膑的大,我不知道该怎么说下去啊啊啊 "LSTN"是一个基于深度学习的语音信号增强算法,其全称为"Lip Sync-Tuned Networks",是由百度公司提出的一种方法,旨在通过利用视频中的口型信息来提升语音信号的质量和清晰度。
LSTN算法的核心思想是将视频中人物的唇形信息与语音信号进行联合建模,从而实现对语音信号的清晰化。该算法使用了一种新颖的神经网络结构,并且可以对不同噪声类型的语音信号进行处理。
具体来说,LSTN算法首先从输入的视频中提取出人物的面部运动信息,然后通过一个融合层将这些信息与语音信号进行联合建模。在这个过程中,LSTN算法还会根据视频中的音频信息对融合层进行调整,以便更好地捕捉口型信息。最后,算法输出一个增强后的语音信号
-
想往哪个方向准备,做了哪些工作(到这里我已经很崩溃了,奉劝大家如果前面答得不好后面也一定要自信要不然像我一样直接痿了话都不会说了)
-
看过源码吗?
面试官建议:学好一门语言转其他很快的,底层要会,为什么这么写,转python,go很快的
往底层深挖为什么会这样子,而不是只停留在怎么用,(他原话:如果只是会用的话,我为什么不找一个新手教他用呢)
#软件开发2023笔面经#