1、.NET框架核心组件及作用和.NET程序完整编译过程图?
.netframework:
CLR:公共语言运行时:提供运行
FCL:框架类库:提供开发
源代码(.cs)---->中间码(.exe)--JIT(即时编译器)-->机器码(0/1)
2、公共语言运行时(CLR)的两个重要组件?及它们各自的作用?
CLR:在.net平台下
CTS:公共类型系统:将不同语言的数据类型进行统一化
CLS:公共语言规范:将不同语言的语法进行统一化
3、.NET数据类型中,值类型和引用类型分别有哪些?
值类型:int long double float boolean struct enum
引用类型:string 数组 类
4、值类型和引用类型分别存储在内存的哪里?各有什么特点?
值类型:存放在内存的栈中:有次序存放数据 赋的是实际的值
引用类型:存放堆中,任意开辟空间 赋的是指向实际数据的地址
5、参数传递的方式有哪些?分别写出各种方式的特点?
1、值方式传递值类型:传递的是实际的值
2、值方式传递引用类型:传递的是指向实际数据的是地址
3、引用方式(ref/out)传递值类型:实参和形参共用同一个栈区及共用同一个值
4、引用方式传递引用类型:实参和形参共用同一个栈区及共用同一个地址
6、什么是装箱与拆箱?及拆箱的特点?
装箱:值类型转换为引用类型
拆箱:引用类型转换为值类型 需强制类型转换成装箱前的类型
7、静态成员与实例成员的异同点?
静态成员:static 只能是类名调用
实例成员:只能用对象调用
静态方法:可以直接访问本类的静态成员 实例成员需创建对象
实例方法:可以直接访问本类的静态和实例成员
8、ArrayList、Hashtable、List<T>、Dictionary<KeyT, ValueT>它们各自的特点?(越全越好)
ArrayList:可以添加任何类型的值 Add(object) 会有装箱 拆箱 数据会混乱 类型不安全 remove(值) removeAt(索引) clear()
Hashtable:同上 键值对存放数据 没有索引 list[key] remove(key) foreach
List<T>:和ArrayList相似 不同是:类型安全 不需装箱 拆箱
Dictionary<KeyT, ValueT>:类似Hashtable 类型安全 不需装箱 拆箱 其他一样
9、构造函数的特点?(至少5个)ZD
1、构造函数名必须和类名相同
2、构造函数没有返回值类型
3、系统默认提供无参构造
4、如果手动添加构造函数、系统将不同无参构造
5、一个类中可以有多个构造 形成构造重载
6、一般构造函数访问级别是public的
10、方法重载的规则?及跟返回值是否有关?跟访问修饰符有关吗?
在同一个类中 方法名相同 参数个数不同
如果个数相同那么类型一定不同
跟 访问级别 反返回值类型 参数名 方法体都没有关系
跟传递的方式有关(ref/out)
.netframework:
CLR:公共语言运行时:提供运行
FCL:框架类库:提供开发
源代码(.cs)---->中间码(.exe)--JIT(即时编译器)-->机器码(0/1)
2、公共语言运行时(CLR)的两个重要组件?及它们各自的作用?
CLR:在.net平台下
CTS:公共类型系统:将不同语言的数据类型进行统一化
CLS:公共语言规范:将不同语言的语法进行统一化
3、.NET数据类型中,值类型和引用类型分别有哪些?
值类型:int long double float boolean struct enum
引用类型:string 数组 类
4、值类型和引用类型分别存储在内存的哪里?各有什么特点?
值类型:存放在内存的栈中:有次序存放数据 赋的是实际的值
引用类型:存放堆中,任意开辟空间 赋的是指向实际数据的地址
5、参数传递的方式有哪些?分别写出各种方式的特点?
1、值方式传递值类型:传递的是实际的值
2、值方式传递引用类型:传递的是指向实际数据的是地址
3、引用方式(ref/out)传递值类型:实参和形参共用同一个栈区及共用同一个值
4、引用方式传递引用类型:实参和形参共用同一个栈区及共用同一个地址
6、什么是装箱与拆箱?及拆箱的特点?
装箱:值类型转换为引用类型
拆箱:引用类型转换为值类型 需强制类型转换成装箱前的类型
7、静态成员与实例成员的异同点?
静态成员:static 只能是类名调用
实例成员:只能用对象调用
静态方法:可以直接访问本类的静态成员 实例成员需创建对象
实例方法:可以直接访问本类的静态和实例成员
8、ArrayList、Hashtable、List<T>、Dictionary<KeyT, ValueT>它们各自的特点?(越全越好)
ArrayList:可以添加任何类型的值 Add(object) 会有装箱 拆箱 数据会混乱 类型不安全 remove(值) removeAt(索引) clear()
Hashtable:同上 键值对存放数据 没有索引 list[key] remove(key) foreach
List<T>:和ArrayList相似 不同是:类型安全 不需装箱 拆箱
Dictionary<KeyT, ValueT>:类似Hashtable 类型安全 不需装箱 拆箱 其他一样
9、构造函数的特点?(至少5个)ZD
1、构造函数名必须和类名相同
2、构造函数没有返回值类型
3、系统默认提供无参构造
4、如果手动添加构造函数、系统将不同无参构造
5、一个类中可以有多个构造 形成构造重载
6、一般构造函数访问级别是public的
10、方法重载的规则?及跟返回值是否有关?跟访问修饰符有关吗?
在同一个类中 方法名相同 参数个数不同
如果个数相同那么类型一定不同
跟 访问级别 反返回值类型 参数名 方法体都没有关系
跟传递的方式有关(ref/out)