前置:笔试AK。
面试时间:2022.9.29
投滴岗位:深圳,深圳-C++/PHP/GO研发工程师
实际面试岗位:深圳,安全部-车联网/物联网嵌入式C++开发
1.
自我介绍
2.
介绍一个最有价值的项目?
3.
服务器性能的感知策略是怎么做的?
测量和具体架构
4. idea是边做边产生的,还是一开始就这么设计的?
框架是设计的,具体的种类、测量和加权是边做边加的。
5.
项目用到的语言?
C/C++,shell script,python
6.
C++ static修饰的意义?
编译时候内存放在静态区,系统释放
被static修饰的函数在编译时候要求前期bind,static修饰的会先于对象存在
可以定义变量,函数,但是不能绑定虚函数。
7.
C++的内存空间
堆区、栈区
8.
New和malloc的不同
标准库和运算符的区别。部分编译器,new的底层实现是malloc。
具体说了重载、构造函数和析构函数调用、分配内存大小的区别。
9.
New和malloc对应的删除函数,不同
Delete和free
10.
既然new比较灵活,malloc存在的意义是什么?
运行快,能动态扩容空间。(不确定对不对)
11.
他们能否混用,比如new一个,然后用free删除?
回答是不能,因为new/delete的内存空间是自由分配区,malloc/free的内存空间是堆区。(不确定对不对)
12.
野指针的安全问题?
不会,我连野指针都不知道。
13.
多线程通信,共享内存的情况下,如何在多线程结束后释放共享内存?
说的是类似计数器的锁,每个线程结束给一个信号,计数器-1。(乱答)
14.
智能指针(Smartpoint)?
不会
15.
Strcpy的安全问题?
内存溢出,可能修改别的变量或者注入指令。
16.
如果让你来设计,怎么解决?
先判断是否长度会导致内存溢出。之后考虑两种做法:
截断,报一个warning或者error。
使用之前聊过的malloc扩容内存空间,然后再copy。
17.
Strcpy的其他安全问题
不知道
18.
C++ 类的拷贝构造函数
不知道,甚至不知道这个函数是什么。
19.
STL常用容器,用法原理?
set,map。主要讲了用法,只知道set是集,map是红黑树实现的。
20.
浏览器输入一个地址后的数据请求和页面响应流程?
常见的:DNS,IP寻址,负载均衡,网络数据包拼凑和校验,页面加载。
21.
知道哪些加解密算法?
只知道TLS1.3讲了一下,还瞎说了一些大数取模求逆不可破解。然后扯了一些公私钥。
22.
算法题:判断链表是否有环?
快慢指针,记得判断进入循环前是否无解。
23.
进一步写:如何找出环的入口?
新的慢指针从原点开始,直到和慢指针相遇。
24.
进一步问答题:快慢指针相遇的时候,慢指针是否走了所有点?
不一定,分别举了两个例子
// 0->1->2->3->4->5->6->3,在4相遇,慢指针没走到5、6
// 0->1->2->3->4->1,在4相遇,慢指针走完所有节点
因为是嵌入式开发,所以C++八股问得很细。太难了,面完感觉自己不会写C++了。
#秋招##校招##百度##面经##23届秋招笔面经#