你的位置:首页 > ASP.net教程

[ASP.net教程]面试题整理:C#(一)


该系列持续更新,从网上以及身边收集的问题

 

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...