1.C和C++的区别,优缺点?
- c语言是面向过程,而c++是面向对象的,所以c语言没有面向对象的封装,继承多态,也不支持面向对象的一些语法
- c++支持函数重载、内联函数、引用,c语言不支持
- c语言中如果函数没有任何参数需要将参数定义为void以此来限定函数不可传递任何参数,如果不进行限定让参数表默认为空就表明可以传递任何参数。c++中不带参数的函数表示不能传递任何参数。
- c语言struct中不能有函数,c++中可以有
- c语言函数参数不支持默认值
- c语言采用malloc和free函数动态申请和释放内存,而c++使用new和delete运算符
- c语言中只有局部和全局俩个作用域。c++中有局部,全局,类,名称空间作用域。
3、了解STL吗?讲解一下里的vector、list
4、讲一下指针和引用的区别?(必考)
- 指针是实体,占用内存空间;引用是别名,与变量共享内存空间。
- 指针不需要初始化或初始化为NULL;引用定义时必须初始化。
- 指针中途可以修改指向;引用不可以。
- 指针可以为空;引用不可以。
- sizeof(指针)计算的是指针的本身大小通常为4;sizeof(引用)计算的是它引用对象的大小。
- 如果返回的是动态分配的内存或对象必须使用指针;使用引用会产生内存泄漏。
- 指针使用时需要解引用;引用不需要。
- 有二级指针,没有二级引用。
5、对多态的理解?如何实现?
静态多态,动态多态,实现原理,虚函数,虚函数表
在现实生活中,多态是同一事物在不同场景下的多种形态。在面向对象中,动态多态是指通过基类的指针或引用,在运行时动态调用实际绑定对象函数的行为,与之相对的编译时绑定的函数称为静态绑定。
- 静态多态是编译器在编译阶段完成的,编译器会根据实参类型来选择调用适合的函数,如果有合适的函数就调用,没有就发出警告或报错。
- 静态多态有:函数重载,运算符重载,泛型编程
- 动态多态是在程序运行时根据基类的引用(指针)指向的对象来确认自己具体该调用哪一个类的虚函数,当父类引用(指针)指向父类对象时,就调用父类中定义的虚函数;当父类引用(指针)指向子类对象时,就调用子类中定义的虚函数。
6、对继承的理解?如何实现?
7、双向链表插入一个节点如何操作?
. 在C++开发中定义一个变量,若不做初始化直接使用会怎样?
- 当局部变量没有被初始化时,系统不会对其进行初始化。定义全局变量的时候,系统会对其进行初始化。
- 结果不可预测。
- 存在潜在的安全问题,比如未初始化的指针访问可能会造成内存访问错误。
- 编译器会警告使用了未初始化的变量。
3. 程序出现崩溃,如何调试?
最常见的崩溃问题就是内存问题,内存越界,访问空指针,野指针。
4. 一个程序是否创建线程越多越好?怎样决定创建线程的数量?(CPU密集型程序、I/O密集型程序、专业化)
单核CPU处理CPU密集型程序,这种情况并不太适合使用多线程。
线程等待时间所占比例越高,需要越多线程;线程CPU时间所占比例越高,需要越少线程。
最佳线程数 = (1/CPU利用率)
= 1 + (I/O耗时/CPU耗时)
CPU利用率越大线程数越多。
面试总被问,创建多少个线程合适?真的越多越好吗_线程池是不是越多越好_Pang文的博客-CSDN博客
5. 一个进程可以访问另一个进程的内存数据?
如果是父进程和子进程的关系,子进程可以访问父进程的部分内存数据。
6. OS怎样保证每个进程有独立的空间?
7. 打开百度网站过程涉及哪些协议?
HTTP :当在浏览器中输入网址时,浏览器就会发送Http 的请求到百度的服务器,请求获取网页内容。http协议定义了客户端和服务端之间的通讯规则和格式。
dns:在发送http请求前,浏览器需要将百度的域名(url)转换为服务器的IP地址。浏览器会向dns服务器发送请求,以查询与百度域名对应的IP地址。
tcp/ip:tcp/ip协议是互联网通信的基础协议。在打开百度网盘时,http请求会被封装在tcp/ip协议中进行传输。tcp协议提供可靠的连接,确保数据的完整性和顺序。ip协议则将数据包传输到目标服务器的IP地址。
ssl/tls:当使用https访问百度网盘,通信将采用ssl/tls协议进行加密,确保数据传输到安全性 。ss/tls协议采用公钥加密和私钥加密的技术。防止数据在传输过程中被窃听或篡改。
8. 说说STL常见容器
9. TCP/IP传输过程中为什么要分片传输?
10. TCP的拥塞控制如何判断当前网络情况?
11. 智能指针的内存管理机制?
12. 了解哪些单例模式?讲一下单例模式
13. I/O多路复用机制的优势?
3.对shell命令了解吗?
4.找到服务a的运行目录所涉及的命令?
5.找访问的某个ip端口的top5的ip地址命令
6.sql语句发现运行慢,如何优化
7.wesocket怎么工作的?怎么保持的长连接?用的什么协议?
9.协程和线程的区别?