目录
6.您能简单聊聊restful api 设计中的幂等性操作吗
7.能谈谈python中的序列化和反序列话吗,用到了哪个内置库?
进制
进制是一种表示数字的方式,它决定了使用几个不同的符号来表示数字,并且规定了每个符号的权值。常见的进制包括二进制、八进制、十进制和十六进制。
-
二进制(Binary):使用两个符号0和1来表示数字。每位数字的权值是2的幂次,从右向左依次增加。
-
八进制(Octal):使用八个符号0-7来表示数字。每位数字的权值是8的幂次,从右向左依次增加。
-
十进制(Decimal):使用十个符号0-9来表示数字。每位数字的权值是10的幂次,从右向左依次增加。十进制是我们日常生活中最常用的进制。
-
十六进制(Hexadecimal):使用十六个符号0-9和字母A-F来表示数字。每位数字的权值是16的幂次,从右向左依次增加。
MIPS
(Microprocessor without Interlocked Pipeline Stages)是一种经典的计算机处理器架构,也指代基于该架构设计的微处理器。MIPS架构最初由斯坦福大学的研究团队开发,在20世纪80年代晚期和90年代广泛用于计算机和嵌入式系统中。
以下是一些关于MIPS架构的特点和特性:
-
精简指令集:MIPS架构采用了精简指令集计算机(RISC)的设计理念,指令集精简且统一,使得指令执行速度更快。
-
固定长度指令:MIPS指令被设计为固定长度(通常是32位),这简化了指令解码和处理器设计。
-
Load-Store架构:MIPS架构采用了Load-Store架构,只允许数据访问通过专门的Load和Store指令进行,提高了内存访问的效率。
-
五级流水线:MIPS处理器采用了五级流水线架构,分别是取指、译码、执行、访存和写回。这种架构允许多条指令同时在不同阶段执行,提高了处理器的性能。
-
延迟槽:MIPS指令集中引入了延迟槽的概念。延迟槽是指在分支指令后面紧跟的一条指令,无论分支是否发生,该指令都会执行。这样设计的目的是利用流水线,在分支发生时隐藏分支延迟。
-
32位寄存器:MIPS架构有32个通用寄存器,每个寄存器大小为32位。这些寄存器可以用于存储数据、地址和临时变量等。
ASCLL
ASCII(American Standard Code for Information Interchange)是一种常见的字符编码标准,用于将字符映射为数字。ASCII码使用7位或8位二进制数字表示128个基本字符,包括字母、数字、标点符号和控制字符。
下面是ASCII码表的部分内容:
Dec Hex Char Dec Hex Char Dec Hex Char Dec Hex Char
----------------------------------------------------------------------
0 00 NUL (空值) 32 20 (space) 64 40 @ 96 60 `
1 01 SOH (标题开始) 33 21 ! 65 41 A 97 61 a
2 02 STX (正文开始) 34 22 " 66 42 B 98 62 b
3 03 ETX (正文结束) 35 23 # 67 43 C 99 63 c
4 04 EOT (传输结束) 36 24 $ 68 44 D 100 64 d
5 05 ENQ (请求) 37 25 % 69 45 E 101 65 e
6 06 ACK (确认) 38 26 & 70 46 F 102 66 f
7 07 BEL (响铃) 39 27 ' 71 47 G 103 67 g
8 08 BS (退格) 40 28 ( 72 48 H 104 68 h
9 09 TAB (水平制表) 41 29 ) 73 49 I 105 69 i
...
这只是ASCII码表的一小部分,请注意每个字符对应的十进制、十六进制和字符本身。
计算机发展可以大致分为以下四个阶段:
-
电子管时代(1940年代-1950年代):计算机的早期阶段主要使用电子管作为计算元件。这个时期的计算机体积庞大,功耗高,且不太可靠。著名的计算机代表包括ENIAC和EDVAC。在这个阶段,计算机主要用于科学研究和军事应用。
-
晶体管时代(1950年代-1960年代):晶体管的发明和应用使得计算机更加小型化、可靠且高效。这个阶段的计算机代表包括IBM 7090和DEC PDP-8。晶体管技术的引入极大地提升了计算机的性能和可用性,并开始用于商业和政府部门。
-
集成电路时代(1960年代-1980年代):集成电路的发明使得数百甚至上千个晶体管可以集成到一个芯片上。这个阶段的计算机代表包括IBM System/360和Apple II。集成电路技术的应用使得计算机变得更加紧凑、高速和经济,进一步推动了计算机在商业和个人领域的普及。
-
微处理器时代(1970年代至今):微处理器的问世是计算机发展的一个重要里程碑。微处理器将中央处理单元(CPU)、存储器和输入输出接口集成在一颗芯片上,使得计算机进一步减小体积、降低成本并提高性能。这个阶段的计算机代表包括IBM PC和Macintosh。微处理器技术的推动促使了个人计算机的出现,并改变了工作、学习以及日常生活的方式
4.请列举OSI7层网络模型及每一层对应的关键协议
-
物理层(Physical Layer):
- 功能:负责传输原始比特流,物理连接和电气规范等。
- 关键协议:Ethernet、Fast Ethernet、Gigabit Ethernet 等。
-
数据链路层(Data Link Layer):
- 功能:提供可靠的数据传输,错误检测和纠正等。
- 关键协议:ARP(Address Resolution Protocol)、PPP(Point-to-Point Protocol)等。
-
网络层(Network Layer):
- 功能:处理数据包的路由和转发,实现不同网络之间的通信。
- 关键协议:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)等。
-
传输层(Transport Layer):
- 功能:提供端到端的可靠或不可靠的数据传输服务。
- 关键协议:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)等。
-
会话层(Session Layer):
- 功能:建立、管理和终止会话(通信连接)。
- 关键协议:NetBIOS(Network Basic Input/Output System)、SSH(Secure Shell)等。
-
表示层(Presentation Layer):
- 功能:数据的表示、编码和加密,确保不同系统的数据格式兼容。
- 关键协议:SSL/TLS(Secure Sockets Layer/Transport Layer Security)、JPEG(Joint Photographic Experts Group)等。
-
应用层(Application Layer):
- 功能:提供特定网络应用程序之间的通信。
- 关键协议:HTTP(Hypertext Transfer Protocol)、DNS(Domain Name System)等。
5.请列举出缓存数据库中redis数据库支持的存储数据类型
string,hash ,set , zset ,list
6.您能简单聊聊restful api 设计中的幂等性操作吗
-
GET 请求:GET 请求是幂等性的,因为它只用于获取资源的表示,而不会对资源进行修改。多次 GET 请求同一个 URI,应该得到相同的结果。
-
PUT 请求:PUT 请求用于创建或更新资源。如果多次执行相同的 PUT 请求,每次请求的数据都相同,那么结果应该是相同的。即使多次执行 PUT,也不会对资源状态造成副作用。
-
DELETE 请求:DELETE 请求用于删除资源。多次执行相同的 DELETE 请求,结果应该都是成功的。如果对于同一个资源的连续 DELETE 请求,多次请求的结果都是相同的,那么该操作也是幂等的。
-
POST 请求:POST 请求通常用于创建新资源,它不是幂等的,因为每个请求都会创建一个新的资源。但是,在某些特定情况下,可以将 POST 请求设计为具有幂等性。例如,可以在请求头中使用唯一标识符来确保多次执行相同的 POST 请求不会导致重复创建相同的资源。
7.能谈谈python中的序列化和反序列话吗,用到了哪个内置库?
在 Python 中,序列化和反序列化是将数据结构或对象转换为可传输或存储的格式,以及从该格式恢复数据结构或对象的过程。
import pickle
# 序列化对象
data = {'name': 'Alice', 'age': 25, 'city': 'New York'}
serialized_data = pickle.dumps(data) # 将对象转换为字节流
# 反序列化对象
deserialized_data = pickle.loads(serialized_data) # 将字节流转换为对象
print(deserialized_data) # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}