大二期末考NET Framework 选择题概念部分Word文件下载.docx
- 文档编号:7948359
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:15
- 大小:21.38KB
大二期末考NET Framework 选择题概念部分Word文件下载.docx
《大二期末考NET Framework 选择题概念部分Word文件下载.docx》由会员分享,可在线阅读,更多相关《大二期末考NET Framework 选择题概念部分Word文件下载.docx(15页珍藏版)》请在冰点文库上搜索。
-System
-System.Web
-System.Data
-System.Windows.Forms
-System.EnterpriseServices
-System.XML
6.常见的.NETFramework应用程序有哪些:
-控制台程序
-ASP.NETWeb应用程序
-Windows窗体应用程序
-ADO.NET
分布式应用程序
7.元数据概念:
元数据是在编译时嵌入的声明性信息
包含:
-应用程序版本、区域、公钥信息
-类型成员(方法、字段、属性、事件、嵌套的类型)
-安全许可证信息
-该程序集所依赖的其他程序集
8.元数据的作用:
加载和定位类
-增强代码安全性
解析方法调用
-提供反射支持
可利用特性扩展元数据
9.公共语言运行库工具有哪些:
-MSIL编译器(ilasm.exe):
从Microsoft中间语言(MSIL)生成最终可执行二进制代码
-MSIL反编译器(ildasm.exe):
检查元数据和托管二进制代码,利用包含MSI代码的PE文件,创建适合输入到MSI汇编程序(Ilasm.exe)的文本文件
-强名称工具(sn.exe):
帮助创建带强名称的程序集。
sn.exe提供用于密钥管理、签名生成和签名验证的选项
10.应用程序域的作用:
-过去进程边界用来隔离应用程序
-在CLR中,应用程序域提供应用程序之间的隔离
-在一个应用程序中的错误不会影响其他的应用程序
11.应用程序域提供应用程序之间的隔离有哪些方法:
-以极小的性能损失进行代码类型安全检查来隔离应用程序
多个应用程序域可并存于同一个应用程序中
-能够在不停止整个进程的情况下停止单个应用程序
在一个应用程序中运行的代码不能直接访问其他应用程序中的代码或资源
12.关于垃圾回收:
-在.NETFramework中自动进行对象内存管理
-不再需要手动进行对象内存的跟踪和管理
13.算法+数据结构=程序;
14.通用类型系统:
-数据结构在微软.NETFramework平台中的形式就是通用类型系统,简称CTS
-构成了.NETFramework的公共语言运行库的基础,它为.NET平台的多语言特性提供了支持
-不仅定义了所有的数据类型,并提供了面向对象的模型以及各种语言需要遵守的标准
15.值类型和引用类型的区别:
-值类型的单独实例分配在堆栈上
-引用类型的实例只在堆栈上分配了对其实际值的引用,值本身分配在堆上
16.值类型和引用类型的比较:
-值类型包括基元类型、用户自定义结构或枚举类型
继承自System.ValueType类型在堆栈上分配
通过拷贝赋值默认通过值来传递参数,除非用ref关键字
-引用类型是对象:
继承自System.Object类型在托管堆上用“new”关键字分配
通过引用赋值
可能出现几个引用指向同一个对象,因此对一个变量的操作会影响另一个变量所引用的同一对象用引用来传递变量
17.关于对象:
-所有的类都继承自System.Object
-对象中指定数据和行为
字段定义数据
-方法定义行为
18.关于结构体:
-继承自System.ValueType
-用struct关键字来定义
-可以有方法、属性和字段
19.关于枚举:
-继承自System.Enum
-用enum来定义
-枚举的类型可以是任何整数类型,char类型除外
20.关于接口:
-接口是方法和属性的契约性描述
继承自接口的类必须实现接口的所有方法、属性和事件
-接口中没有任何实现代码
-可以通过类型转换来访问接口
-还可以有静态成员、嵌套类型、抽象、虚拟成员和事件
21.面向对象的特性
:
-抽象
-封装
-继承
多态性
22.类型的转换有几种:
-隐式转换:
是一种安全类型的转换,不会导致数据丢失,因此不需要任何特殊的语法
-显式转换(强制转换):
需要强制转换运算符。
在转换中可能丢失信息时或在出于其他原因转换可能不成功时,必须进行强制转换
-用户定义的转换:
可以定义一些特殊的方法来执行用户定义的转换,从而使不具有基类–派生类关系的自定义类型之间可以显式和隐式转换
-使用帮助程序类的转换:
若要在不兼容的类型之间进行转换,例如在整数与System.DateTime对象之间转换,或者在十六进制字符串与字节数组之间转换,则可以使用
System.BitConverter类、System.Convert类和内置数值类型的Parse方法,例如Int32.Parse。
23.装箱和取消装箱:
-装箱是将值类型转换为object类型或由此值类型实现的任一接口类型的过程
-取消装箱将从对象中提取值类型
-装箱是隐式的
-取消装箱是显式的
24.关于泛型优势:
-可重用性
-类型安全
性能好
25.什么是委托:
-是一种定义方法签名的类型
-实例化委托时,可以将其实例与任何具有兼容签名的方法相关联
-通过委托实例调用方法
-方法可以是静态方法,也可以是实例方法
-用于将方法作为参数传递给其他方法
26.委托具有以下特点:
-委托类似于C++函数指针,但它们是类型安全的
-委托允许将方法作为参数进行传递
委托可用于定义回调方法
-委托可以链接在一起;
例如,可以对一个事件调用多个方法
方法不必与委托签名完全匹配
27.声明委托
-委托声明定义一个类型,该类型封装了一个有一系列参数和返回值的方法
-类似于方法的定义,但没有方法体,定义的前面加上delegate关键字
-定义委托基本上是定义一个新类,可以在定义类的任何地方定义委托,并可以使用访问修饰符
28.单路广播委托和多路广播委托:
-所有的委托都包含调用列表,被调用时,委托包含的方法被执行
-单播委托直接继承自System.Delegate,
调用列表只包含一个方法
-多播委托继承自System.MulticastDelegate
,调用列表包含多个方法
-用委托的Target和Method属性来决定
29.增强委托行为有哪些:
-匿名方法
协变
逆变
30.使用事件的好处:
-.NETFramework通常会在对象发生某些情况时自动引发预构建的事件作为响应
当用户在UI中单击自定义控件时,该控件就会触发Click事件
31.事件的工作方式:
-首先,必须在类中声明事件并确定将要使用的委托和参数
其次,必须定义在触发事件时要调用的委托
-最后,必须设计事件参数类,该参数类的实例会将信息传递给被调用的方法
32.声明事件:
为事件声明一个委托类型
-语法和声明一个委托类型的字段类似,但字段的前面加event关键字
33.连接事件:
通过添加委托来连接到事件
通过移除委托来断开到事件的连接
34.激发事件:
检查是否客户端已连接到事件,
如果事件字段是null,则表明没有客户端
通过调用事件的委托来引发事件
35.何时使用委托:
-当你想用C风格的函数指针时
当你想用单个的回调函数时
当你想回调函数在委托创建时就被注册,而不是通过调用单独的添加方法时
36.何时使用事件:
-客户端通过调用添加方法来注册回调函数
-不止一个对象需要通知
37.何时使用接口:
-回调函数中有复杂的操作,如多个方法
38.进程:
任何应用程序在执行期间都被称为一个进程
39.线程
-线程是一个执行单元
-每个进程至少要包含一个线程
-命名空间是
System.Threading
-操作系统分配处理器时间的基本单位
-支持多个活动同时进行
40.多线程的优点:
-允许应用程序进行后台处理,同时保持对用户界面的响应
-区分任务的优先级
-通过网络进行通信,如和Web服务器、数据库进行通信
42.使用线程的潜在缺点:
-会增加操作系统负担,降低应用程序性能,例如,线程上下文切换
-控制多个线程的代码执行是复杂而又易出错的
43.Thread类主要操作
:
-Start启动线程
-Abort终止线程,以“产生异常”的方式迫使线程终止
-Interrupt中断线程,只能中断处于WaitSleepJoin状态的线程
-Resume继续线程,继续已挂起的线程
-Join阻塞线程,此方法阻止线程继续执行,直到完成其他线程或超过指定时间段
-Suspend挂起线程
-Sleep线程休眠,让线程暂停某些时间段
44.Thread类的属性:
-使用Thread.Name和Thread.Priority属性来获取或设置线程的名称和优先级
-通过设定Thread.IsBackground属性来指定是前台线程还是后台线程
45.线程安全概述:
-争用条件:
未受控制的代码执行顺序会引起错误
-死锁:
线程之间互相等待从而阻止线程继续执行
-最好的办法是尽可能避免共享数据,
把数据封装在不被共享的对象中
46.线程池:
线程池用来提高应用程序效率,对计算机的所有进程进行优化
47.下列情况不要使用线程池:
-任务需要一个特别的优先级
-有些任务可能需要运行很长时间
-需要把线程放到一个单线程的单元中
-需要通过一个稳定的标识和线程关联
48.使用线程的最佳实践:
-避免提供会改变静态状态的静态方法
-静态状态必须是线程安全的
-实例状态可以不是线程安全的
-任何时间都尽可能不使用锁
-死锁经常是由于调用锁定部分引起的
-尽可能优先使用System.Threading.Interlocked类,不使用lock语句
-尽可能避免同步
49.TCP/IP的Socket的3种类型的套接字:
-流式套接字(SOCK_STREAM):
提供面向连接、可靠的数据传输服务,数据无差错、无重复的发送,且按发送顺序接收。
内设流量控制,避免数据流超限;
数据被看作是字节流,无长度限制。
文件传输协议(FTP)即使用流式套接字。
-数据报式套接字(SOCK_DGRAM):
提供无连接服务。
数据包以独立包形式发送,不提供无差错保证,数据可能丢失或重复,并且接收顺序混乱。
网络文件系统(NFS)使用数据报式套接字。
-原始套接字(SOCK_RAW):
该接口允许对较低层协议,如IP、ICMP直接访问。
常用于检验新的协议实现或访问现有服务中配置的新设备。
50.Socket编程的通信方式:
-同步方式
通信的同步,指客户端在发送请求后,必须在服务端有回应后才能发送下一个请求。
所以这个时候的所有请求将会在服务端得到同步。
-异步方式
通信的异步,指客户端在发送请求后,不必等待服务端的回应就可以发送下一个请求,
这样对于所有的请求动作来说将会在服务端得到异步,这条请求的链路就像是一个请求队列,
所有的动作在这里不会得到同步。
-阻塞方式
阻塞套接字是指执行此套接字的网络调用时,所调用的函数只有在得到结果之后才会返回,在调用结果返回之前,当前线程会被挂起,即此套接字一直阻塞在网络调用上。
比如调用StreamReader类的ReadLine(?
)方法读取网络缓冲区的数据,如果调用的时候没有数据到达,那么此ReadLine(?
)方法将一直挂在调用上,直到读到一些数据,此函数才返回。
-非阻塞方式:
非阻塞和阻塞的概念相对应,非阻塞套接字是指在执行此套接字的网络调用时,即使不能立刻得到结果,该函数也不会阻塞当前线程,而会立刻返回。
对于非阻塞套接字,同样调用StreamReader类的ReadLine(?
)方法读取网络缓冲区的数据,不管是否读到数据都立即返回,而不会一直挂在此函数调用上。
51.Socket类的常用方法:
-Bind(EndPointaddress):
在服务器端,当一个套接字被创建后,需要将它绑定到系统的一个特定地址。
可以使用Bind(?
)方法来完成,其参数为一个IPEndPoint实例(包含IP地址和端口信息)
-Listen(intcon_num):
服务器端的套接字完成了与地址的绑定后,就使用Listen(?
)方法监听客户发送的连接请求。
其参数con_num为一整型值,该值表示服务器可以接受的最大连接数目。
超过这个数目的连接都会被拒绝。
con_num数值的设定会影响到服务器的运行,因为每个接受的连接都要使用TCP缓冲区,如果连接的数目过大,收发数据的缓存将减少。
-Accept(?
)
在服务器进入监听状态时,如有从客户端发来的连接请求,服务器将使用Accept(?
)方法来接受连接请求。
Accept(?
)返回一个新的套接字,该套接字包含所建立的连接的信息并负责处理
本连接的所有通信。
而服务器刚开始创建的套接字仍然负责监听,并在需要时调用Accept(?
)接受新的连接请求。
-Send(?
):
当服务器接受了来自客户端的连接请求后,服务器和客户端双方就可以利用Send(?
)方法来发送数据。
Send(?
)有四种重载方法,如表所示。
52.序列化:
-序列化是
将数据(可以是字符串、对象、图像、文件等等)转化成某个统一的格式(如二进制、XML等),以便在程序中使用
53.序列化的作用:
用户在多个程序之间进行数据传输(可以在网络上传输)
-可以将数据保存到硬盘上【数据持久化】
54..Net支持三个序列化格式
-二进制
XML
-JSON格式
55.自定义序列化的内容:
-实现一个构造函数,在该函数中能对数据进行处理
-实现Iserializable接口的方法GetObjectData,以实现要序列化的数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大二期末考NET Framework 选择题概念部分 大二 期末 NET 选择题 概念 部分
![提示](https://static.bingdoc.com/images/bang_tan.gif)