2021秋知识点以及补足记录(随缘更新)
静态库链接时搜索路径顺序:
1. ld会去找GCC命令中的参数-L
2. 再找gcc的环境变量LIBRARY_PATH
3. 再找内定目录 /lib /usr/lib /usr/local/lib 这是当初compile gcc时写在程序内的
动态链接时、执行时搜索路径顺序:
1. 编译目标代码时指定的动态库搜索路径
2. 环境变量LD_LIBRARY_PATH指定的动态库搜索路径
3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径
4. 默认的动态库搜索路径/lib
TCP与UDP的区别
(1)TCP是需要连接的传输协议(长连接),UDP是不需要连接的传输协议;
(2)TCP对系统资源要求较多,UDP要求较少;
(3)TCP的程序结构较复杂,UDP程序结构较简单;
(4)TCP是流模式,UDP是数据报模式 ;
(5)TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
new和malloc
(1)都可用来申请动态内存和释放内存,都是在堆(heap)上进行动态的内存操作。
(2)malloc和free是C语言的标准库函数,new和delete是C++的运算符。
内存分配方式
-
方法一:
从静态存储区域分配。
内存在程序编译的时候就已经分配好,这块内存在程序的整个 运行期间都存在。例如全局变量,static变量。
-
方法二:
在栈上创建。
在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执 行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高, 但是分配的内存容量有限。
-
方法三:
从堆上分配,亦称动态内存分配。
程序在运行的时候用malloc或new申请任意多少的内 存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由程序员决定,使 用非常灵活,但如果在堆上分配了空间,就有责任回收它,否则运行的程序会出现内存泄漏 ,频繁地分配和释放不同大小的堆空间将会产生堆内碎块。
HTTP与HTTPS的区别
一、HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。
二、HTTP是超文本传输协议信息是明文传输,HTTPS则是具有安全性的ssl加密传输协议。
三、HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。