C++ 面试知识准备

参考链接:
https://blog.csdn.net/qq_27678917/article/details/70224813
https://blog.csdn.net/kuweicai/article/details/82779648
https://github.com/huihut/interview

C++

关键字

static

1.修饰普通变量:决定该变量的存储区为静态区和生命周期(在main函数运行前已经分配空间),可以默认初始化(随机值)
2.修饰普通函数:规定函数作用范围仅限定义该函数的文件内才能使用
3.修饰成员变量:使所有对象只保存一个该变量,而且不需要生成对象就可以访问该成员
4.修饰成员函数:使得不需要生成对象就可以访问该函数,但在static函数内不能访问非静态成员

const

1.修饰变量----->常量,该变量不可被改变
2.修饰指针----->常量指针和指针常量
3.修饰引用---->常量引用,常用于形参类型,避免拷贝,避免函数对值的修改
4.修饰成员函数------>该成员函数内不能修改成员变量
条款02:尽量以const,enum,inline替换#define

sizeof()

1.sizeof(数组): 整个数组空间大小
2.sizeof(指针): 指针本身占空间大小

对比

struct&class
  1. 访问权限: struct数据访问是public的,class默认的成员变量的访问是private
  2. 默认继承权限: struct是public的,class是private

malloc&new

定义&声明

(1)定义:给变量分配内存,只能定义一次

int i; //既是定义也是声明
extern int i; //声明而非定义

(2)声明不分配内存空间,可以声明多次,如函数声明,使用extern关键字对函数变量声明等。

指针&引用

1.本质区别:
(1)指针为指向一个变量的地址
(2)引用为变量的别名,实质还是变量。
2.使用方式区别:
(1)引用需要初始化,且初始化后不可更改,指针可以为空,并且可以改变
(2)可以有const 指针,没有const引用
(3)指针可以有多级,引用只有一级
(4)如果返回动态分配的对象或变量,应当返回指针,返回引用可能导致内存泄漏
(5)参数传递:
指针作为函数参数传递时,本质是值传递,传递的是值的地址,会将实参拷贝给形参,可以直接取地址改变原先变量
引用作为函数参数传递时,传递的是值本身,避免了拷贝操作,同时也可以对原变量直接操作。

堆&栈

(1) 堆存放动态分配的对象——即那些在程序运行时分配的对象,比如局部变量,其生存期由程序控制;
(2) 栈用来保存定义在函数内的非static对象,仅在其定义的程序块运行时才存在;
(3) 静态内存用来保存static对象,类static数据成员以及定义在任何函数外部的变量,static对象在使用之前分配,程序结束时销毁;
(4) 栈和静态内存的对象由编译器自动创建和销毁。

面向对象特性(封装\继承\多态)

多态

STL

空间配置器

vector

  1. 简介: 动态空间,由内部空间配置器自动扩充空间容纳新元素,存储空间连续,支持随机存取
  2. 实现: 动态增加大小时, 先分配一个俩倍于当前空间的内存,拷贝原内容,释放原空间,添加新元素.因此,一旦空间重新分配,指向原空间的迭代器失效.

操作系统

进程&线程

网络编程

OSI七层模型和TCP/IP四层模型

TCP三次握手四次挥手过程

TCP&UDP

网络字节序&本地字节序

本地字节序: 小端存储(低地址-低字节, 高地址-高字节)
网络字节序: 大端存储(低地址-高字节, 高地址-低字节)

#include <arpa/inet.h>  
uint32_t htonl(uint32_t hostlong);  
uint16_t htons(uint16_t hostshort);  
uint32_t ntohl(uint32_t netlong);  
uint16_t ntohs(uint16_t netshort);

HTTP&HTTPS

  1. http 的URL 以http:// 开头,https以https:// 开头
  2. http 标准端口是80 ,https是443
  3. https 协议需要到ca申请证书,http不需要。
  4. http 是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议
  5. http 的连接很简单,是无状态的,https协议是由SSL(Secure Socket Layer安全套接层)+http协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全
  6. SSL协议工作在(应用层与传输层之间)
    优点:
  7. 通过证书可以更信任服务器
  8. 更安全,防篡改
    缺点:
  9. https 需要证书。
  10. 因为对传输进行加密,会一定程度增加cpu消耗。
  11. 由于https 要还密钥和确认加密算法的需要,所以首次建立连接会慢一些。
  12. 带宽消耗会增加。

epoll&select&poll

get&post

流量控制&拥塞控制

从URL输入到最终界面展示的过程

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值