以下是评级的题目
1、进程、线程的概念
进程是处理器处理一个执行过程,线程是进程的一部分,进程里允许有多个线程的存在。
进程之间是独立。线程上下文的切换比进程上下文切换要快。
2、数组、链表、栈、结构体的区别。
链表和数组都叫可以叫做线性表,
数组又叫做顺序表,主要区别在于,顺序表是在内存中开辟一段连续的空间来存储数据,而且必须是相同类型的数据。
而链表是通过存在元素中的指针联系到一起的,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域,链表既可以靠指针来连接多块不连续的的空间也可以用一段连续的空间,
数组:连续的内存空间。链表:指针指向域,链接不连续的内存空间。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。
3、array list heap api
array 数组:var a =new array(); a[1]=‘x‘;a[2]=‘y‘;
list :var a=new list();a.add(‘a‘);a.add(‘b‘);
heap : set get
4、httpHead的概念
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。
5、启动线程的多种方法
最常见的就是使用参数为 ThreadStart类型的线程构造函数;ParameterizedThreadStart类型的线程构造函数;直接采用异步委托调用;创建内嵌的线程类
6、接口 抽象类的 区别
接口不能继承类,只能继承接口,接口是抽象类的变形,抽象类允许有非抽象方法,但接口全部是抽象方法。
7、C#.net面向对象的三个概念(特征)
封装、继承、多态
8、数据库事务解析
四大特征:原子性、一致性、隔离性、持久性。
隔离级别:问题:脏读、不可重复读、虚读。
Read uncommitted 读未提交、Read committed 读提交、Repeatable read 重复读、Serializable 序列化
9、锁的模式
锁模式
说明 |
|
---|---|
共享 (S) |
用于不更改或不更新数据的读取操作,如 SELECT 语句。 |
更新 (U) |
用于可更新的资源中。 防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。 |
排他 (X) |
用于数据修改操作,例如 INSERT、UPDATE 或 DELETE。 确保不会同时对同一资源进行多重更新。 |
意向 |
用于建立锁的层次结构。 意向锁包含三种类型:意向共享 (IS)、意向排他 (IX) 和意向排他共享 (SIX)。 |
架构 |
在执行依赖于表架构的操作时使用。 架构锁包含两种类型:架构修改 (Sch-M) 和架构稳定性 (Sch-S)。 |
大容量更新 (BU) |
在向表进行大容量数据复制且指定了 TABLOCK 提示时使用。 |
键范围 |
当使用可序列化事务隔离级别时保护查询读取的行的范围。 确保再次运行查询时其他事务无法插入符合可序列化事务的查询的行。 |
10、负载均衡的算法
1、轮询法
将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。
2、随机法
通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。由概率统计理论可以得知,随着客户端调用服务端的次数增多,
其实际效果越来越接近于平均分配调用量到后端的每一台服务器,也就是轮询的结果。
3、源地址哈希法
源地址哈希的思想是根据获取客户端的IP地址,通过哈希函数计算得到的一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。
4、加权轮询法
不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。
5、加权随机法
与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是,它是按照权重随机请求后端服务器,而非顺序。
6、最小连接数法
最小连接数算法比较灵活和智能,由于后端服务器的配置不尽相同,对于请求的处理有快有慢,它是根据后端服务器当前的连接情况,动态地选取其中当前
积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器。