如何以较小的内存代价保存 Type、Field 和 Method 信息
System.RuntimeTypeHandle、System.RuntimeMethodHandle 和 System.RuntimeFieldHandle 三个类型,分别包含了一个指向类型、方法和字段描述的指针,用保存指针的方式来代替保存整个类型、方法和字段的信息描述对象,可以有效地减少内存的消耗。而在实际需要用到这些信息时,又可以通过这三个句柄类型对象,分别得到System.Type、System.Reflection.MethodInfo 和System.Reflection.FieldInfo 类型对象。
JIT是如何工作的
JIT 引擎在编译中间代码之前,会寻找方法的本机机器代码缓存并且判断其是否可用,如果可用则直接加载,如果不可用,JIT 引擎会查找类型中的方法存根,找到该中间代码并且进行编译。
什么是内存映射文件?
内存映射文件用于将文件内容映射到应用程序的逻辑地址。它使你能够在同一台计算机上运行多个进程以彼此共享数据。要获得一个内存映射文件对象, 可以使用MemoryMappedFile.CreateFromFiles()
方法。它表示磁盘上文件中的持久性内存映射文件。
CTS、CLS、CLR分别作何解释
CTS:通⽤语⾔系统。CLS:通⽤语⾔规范。CLR:公共语⾔运⾏库。
CTS:Common Type System 通⽤类型系统。Int32、Int16→int、String→string、Boolean→bool。 每种语⾔都定义了⾃⼰的类型,.Net通过CTS提供了公共的类型,然后翻译⽣成对应的.Net类型。
CLS:Common Language Specification 通⽤语⾔规范。不同语⾔语法的不同。每种语⾔都有⾃⼰的语 法,.Net通过CLS提供了公共的语法,然后不同语⾔翻译⽣成对应的.Net语法。
CLR:Common Language Runtime 公共语⾔运⾏时,就是GC、JIT等这些。有不同的CLR,⽐如服务 器CLR、Linux CLR(Mono)、Silverlight CLR(CoreCLR)。相当于⼀个发动机,负责执⾏IL。
在.net中,配件的意思是?
程序集。(中间语⾔,源数据,资源,装配清单)
Thread 类有哪些常⽤的属性和⽅法
属性
CurrentContext:获取线程正在其中执⾏的当前上下⽂。
CurrentCulture:获取或设置当前线程的区域性。
CurrentPrincipal:获取或设置线程的当前负责⼈(对基于⻆⾊的安全性⽽⾔)。
CurrentThread:获取当前正在运⾏的线程。
CurrentUICulture:获取或设置资源管理器使⽤的当前区域性以便在运⾏时查找区域性特定的资源。
IsBackground:获取或设置⼀个值,该值指示某个线程是否为后台线程。
Priority:获取或设置⼀个值,该值指示线程的调度优先级。
ThreadState:获取⼀个值,该值包含当前线程的状态。
方法
Abort
Start //开始⼀个线程。
Yield //让线程暂停⼀段时间。
如何查看和设置线程池的上下限
通过 ThreadPool 类型提供的5个静态⽅法可以获取和设置线程池的上限和下限,同时它还额 外地提供了⼀个⽅法来让程序员获知当前可⽤的线程数量,下⾯是这五个⽅法的签名:
GetMaxThreads
GetMinThreads
SetMaxThreads
SetMinThreads
GetAvailableThreads
字符串
~Strings = new String(“xyz”);创建了⼏个String Object?
两个对象,⼀个是“xyz”,⼀个是指向“xyz”的引⽤对象s。
~如何使用 IFormattable 接口实现格式化输出
IFormattable接口帮助类型实现了多样式的格式化输出。IFormattable 的ToString方法接受一个代表格式的字符串参数,通过对这个参数的分析来进行格式化输出。另外,IFormattable.ToString方法接受一个IFormatProvider类型的参数,以允许类型的使用者提供格式化的方法。