您的位置:首页 > 职场人生

.NET面试题

2015-12-31 16:03 465 查看
1.三层架构

表示层(UI):实现数据呈现,用户交互

业务逻辑层(BLL):业务表现层实现与表示层的沟通,业务规则层实现用户业务逻辑

数据访问层(DAL):对数据进行操作,实现数据的增删改查

优点:分工明确,条理清晰,易于调试,而且具有可扩展性

缺点:增加开发成本

2.类(class)与结构(struct)的异同

Class可以实例化,属于引用类型,是分配在内存中的堆上的。

类是引用传递 Struct属于值类型,是分配在内存的栈上。

结构是复制传递

3.堆跟栈的区别

栈是在编译期间就分配好的内存空间,局部值类型变量,值类型参数等都在栈内存中 堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要堆内存的大小

4.String s=new string("xyz");创建了几个String Object?

两个对象,一个是”xyz“,一个是指向”xyz“的引用对象

5.C#中的接口和类有什么异同?

不同点:

1.不能直接实例化接口;

2.接口不包括方法的实现;

3.接口可以多继承,类只能单继承

相同点:

1.接口,类和结构都可以从多个接口继承;接口类似于抽象基类;

2.继承接口的任何非抽象类型都必须实现接口的所有成员;

3.接口和类都可以包含事件,索引器,方法和属性;

6.抽象类和接口有什么区别?

相同点:

都不能被直接实例化,都可以通过继承实现其抽象方法

不同点:

1.接口支持多继承,抽象类不支持多继承;接口只定义行为,抽象类既可以定义行为,还可以提供实现

2.接口只包含方法(Method),属性(Property),索引器(index),事件(Event)的签名,但不能定义字段和包含实现方法;

3.抽象类可以定义字段,属性,包含实现方法;

7.new关键字的用法

new 运算符 用于创建对象和调用构造函数

new 修饰符 用于向基类成员隐藏继承成员

8.线程与进程的区别

进程定义的是应用程序与应用程序的边界,不同的进程不能共享代码和数据空间 线程定义的是代码执行堆栈和执行上下文的边界

9.DataReader和DataSet的异同?

DataReader使用时始终占用Sqlconnection,在线操作数据库,每次只在内存中加载一条数据,所以占用的内存很小

DataSet则是将数据一次性加载在内存中,抛弃数据库连接,读取完毕即放弃数据库连接,将数据全部加载在内存中,所以比较耗内存

10.简述private,protected,public,internal修饰符的访问权限

private:私有成员,在类的内部才可以访问

protected:保护成员,该类内部和继承类中才可以访问

public:公共成员,完全公开,没有访问权限

internal:在同一程序集内可以访问

11.列举ASP.NET页面之间传递值的几种方式

1.使用Querystring,如....?id=1;response.redirect()...

2.使用session变量

3.使用server.tranfer

4.使用Application

5.使用Cache

6.使用HttpContex的item属性

7.使用文件

8.使用数据库

9.使用Cookie

12.override与重载的区别

重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要

override是进行基类中虚函数或抽象函数的重写,用于实现多态

13.什么是装箱和拆箱?

装箱:从值类型转换到引用类型

拆箱:用引用类型转换到值类型

14..net中读写数据库需要用到哪些类?他们的作用?

DbConnection:数据库连接类

DataCommand:执行语句命令

DataSet:数据集

DataAdapter:数据适配器,用于填充数据到数据集

DataReader:数据读取器

15.在C#中,string str=null与string str=""请尽量使用文字或图像说明其中的区别

string str=null是不给他分配内存空间,而string str=""给它分配长度为空字符串的内存空间

16.面向对象的语言具有封装性,继承性,多态性

17.软件开发过程一般有几个阶段?每个阶段的作用?

可行性分析(风险控制),需求分析,架构设计,代码编写,测试,部署,维护
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: