目录
4.堆和栈是在计算机内存中用于存储数据的两种不同的区域,它们有以下几个方面的区别
1.with open语句
1.自动关闭文件: 使用with open语句可以确保在操作结束后自动关闭文件。在代码块执行完毕后,无论是正常执行还是发生异常,文件都会被正确关闭。这样可以避免因为忘记关闭文件而导致资源泄漏的问题。
2.简洁和优雅: with open语句的语法简洁明了,使得代码更加清晰和易读。它可以将文件操作的相关代码块封装在一个作用域内,提高了代码的可维护性。
2.递归
特点:
一个函数内部调用自己,函数内部可以调用其他函数,当然在函数内部也可以调用自己。
代码特点:
1. 函数内部的代码是相同的,只是针对参数不同,处理的结果不同
2. 当参数满足一个条件时,函数不再执行。这个非常重要,通常被称为递归的出口,否则会出现死循环
3.隐式递归
隐式递归是一种递归算法的实现方式,期中递归调用并没有明确地出现在代码中,而是通过函数或方法内部的循环来隐式地实现递归。
4.堆和栈是在计算机内存中用于存储数据的两种不同的区域,它们有以下几个方面的区别
1. 分配方式:堆是由程序员手动管理的,需要显式地进行内存分配和释放,以便存储动态分配的数据。栈是自动分配和释放的,数据存储在栈上以支持函数调用和局部变量的使用。
2. 内存管理:在堆中,程序员需要手动分配内存,并负责释放不再使用的内存。而栈有一个管理机制,它会自动分配和释放内存,不需要手动操作。
3. 空间大小:堆的空间大小通常比较大,取决于操作系统和计算机硬件的限制。栈的空间相对较小,大小通常是固定的,取决于编译器或操作系统的限制。
4. 分配速度:堆空间的分配速度相对较慢,因为需要搜索合适的内存块,以满足动态分配的需求。栈的分配速度相对较快,因为只需要移动栈指针来分配内存。
5. 存储数据类型:堆可以存储各种数据类型,包括基本类型和自定义类型。而栈主要存储局部变量和函数调用的上下文信息,如栈帧和返回地址。
6. 存在时间:堆上分配的内存可能会在程序的整个生命周期内存在,直到程序员显式释放它。栈上分配的内存只在函数调用期间存在,函数返回后会自动释放。
7. 后果:当堆中的内存分配不当或未释放时,可能会导致内存泄漏,造成程序性能下降或崩溃。栈上分配的内存不需要手动释放,避免了内存泄漏的风险。
5.创建虚拟环境与打开虚拟环境
1.新建文件夹,打开命令行输入cmd,黑窗口输入Python -m venv 文件名创建虚拟环境
2.打开黑窗口输入workon,在输入mk virtualenv 虚拟环境名,在Python文件打开设置进入interpreter选择新创建的虚拟环境
6.TOP三次握手四次挥手
TCP三次握手:
客户端向服务端发送一个带有 SYN(同步)标志的连接请求报文段。
服务端收到请求后,向客户端发送一个带有 SYN/ACK(同步/确认)标志的确认报文段,表示服务端同意建立连接。
客户端收到确认报文段后,再向服务端发送一个带有 ACK(确认)标志的报文段,表示客户端确认连接建立。
服务端收到确认报文段后,连接建立完成,双方可以开始传输数据。
TCP四次挥手:
客户端发起关闭连接请求,发送一个带有 FIN(结束)标志的报文段。
服务端收到请求后,向客户端发送一个带有 ACK 标志的确认报文段,表示服务端收到关闭请求。
服务端继续发送剩余数据,待数据发送完毕后,向客户端发送一个带有 FIN 标志的报文段。
客户端收到服务端的关闭请求后,发送一个带有 ACK 标志的确认报文段,双方确认关闭连接。
7.redis过期策略:
1,定时过期
每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。
2,惰性过期
只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化地节省CPU资源,却对内存非常不友好。极端情况可能出现大量的过期key没有再次被访问,从而不会被清除,占用大量内存。
3,定期过期
每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中已过期的key。该策略是前两者的一个折中方案。通过调整定时扫描的时间间隔和每次扫描的限定耗时,可以在不同情况下使得CPU和内存资源达到最优的平衡效果。
8、redis事务:
1、单独的隔离操作:
事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
2、没有隔离级别的概念:
队列中的命令没有提交之前都不会实际被执行,因为事务提交前任何指令都不会被实际执行。
3、不保证原子性 :
事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚。
9、计算机的电子元件
1、第一代计算机逻辑元件采用的是真空电子管,称为电子管数字机,(1946-1958年)
2、第二代计算机采用了晶体管,体积缩小、能耗降低、可靠性提高、运算速度提高,称为晶体管数字机 (1958-1964年) ;
3、第三代计算机硬件方面,逻辑元件采用中、小规模集成电路 (MSI、SSI),称为集成电路数字机(19641970年) ;
4、第四代计算机硬件方面,逻辑元件采用大规模和超大规模集成电路(LSI和VLSI),称为大规模集成电路机 (1970年至今)
10、64位的解释
电脑64位什么意思?
64位的电脑是指能够处理64位数据的电脑,它有更大的内存,更强大的处理能力。64位的电脑可以处理更大的数据,并且有更高的运行速度,可以更好的支持多任务处理。
电脑64位的优势
1.更大的内存容量:64位的电脑可以处理更大的数据,支持更大的内存,可以更好的支持多任务处理.
2.更快的处理速度:64位的电脑可以更快的处理数据,能够更快的运行应用程序,可以提高用户的工作效姿
3.更好的安全性: 64位的电脑可以更好的防止病毒的入侵,保护用户的系统安全。