该系列持续更新,从网上以及身边收集的问题
1.可访问性级别有哪几种
public 访问不受限制。
protected 访问仅限于包含类或从包含类派生的类型。
internal 访问仅限于当前程序集。
protected internal 访问仅限于从包含类派生的当前程序集或类型。
private 访问仅限于包含类型。
2.String和StringBuilder的区别
String类有不可改变性。每次执行字符操作时,都会创建一个新的String对象。
StringBuilder对象在初始化以后只有一个对象。
在频繁操作或拼接字符串时使用StringBuilder更好
*String是引用类型,存放在堆上
3.Struct和Class的区别
class是引用类型,structs是值类型
class创建在堆上。struct创建在栈上
class可以有初始化器,struct不可以有初始化器
class可以有明显的无参数构造器,但是Struct不可以
class使用前必须实例化,struct不需要
class支持继承和多态,struct不支持
class的构造器不需要初始化全部字段,struct的构造器必须初始化所有字段
class有面向对象的扩展优势,struct有性能优势
4.应用程序域?托管代码?强类型系统?装箱和拆箱?重载?
应用程序域(AppDomain)
可以看成轻量级的进程,一个进程中可以包含多个应用程序域,一个应用程序域可以装载一个可执行程序(*.exe)或者多个程序集(*.dll)。这样可以使应用程序域之间实现深度隔离,即使进程中的某个应用程序域出现错误,也不会影响其他应用程序域的正常运作
托管代码(Managed Code)
中间语言(IL)代码,由公共语言运行库(CLR)执行的代码,而不是由操作系统直接执行,由CLR转换为计算机语言解释给计算机
强类型系统
所有变量必须被指定类型,没有强制类型转化前,不允许两种不同类型的变量相互操作
装箱和拆箱
箱是将值类型转换为引用类型,拆箱是将引用类型转换为值类型
重载
同一个类中有两个或多个名字相同但是参数不同的方法
5.CTS、CLS和CLR分别作何解释?
http://www.cnblogs.com/zagelover/articles/2741370.html
CTS通用类型系统(Common Type System)
描述了类型的定义和行为。
CLS通用语言规范(Common Language Specification)
是CTS的一个子集,它定义了希望编写在.NET平台上运行的程序的语言所需符合的最小规范
CLR公共语言运行库(Common Language Runtime)
CLR是CTS的实现,也就是说,CLR是应用程序的执行引擎和功能齐全的类库,该类库严格按照CTS规范实现。
6.GC是什么
CLR垃圾回收机制,根据"代"自动回收堆上不被引用的对象
To be continue...