.Net面试总结

1.装箱和拆箱是什么?

装箱:装箱是值类型到 object 类型或到此值类型所实现的任何接口类型的隐式转换。

拆箱:从object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。

2..Net为什么不需要考虑内存漏洞问题?

C#中所有托管代码运行结束后都会被GC自动释放掉,除了一些资源需要手动释放外,所以我们不用担心内存泄露等。

3.在面向对象中,把对象发出的服务请求称为什么?类对象所执行的各操作称为什么?

消息,方法。

4.什么和什么基于客户端状态管理?

Cookie和ViewState

5.为防止过度装箱(boxing)和拆箱(Unboxing),net2.0提供了什么?

泛型

6.Ref与out的区别

ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点。
使用ref前必须对变量赋值,out不用。
out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。

7.如何提高.net性能?

http://blog.sina.com.cn/s/blog_ab914ce40101bhgn.html

8.存储过程与函数区别?

    函数限制比较多,如不能用临时表,只能用表变量等,而存储过程的限制相对就比较少。

    8.1. 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。

    8.2. 对于存储过程来说可以返回参数,而函数只能返回值或者表对象。

    8.3. 存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数

       可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。

    8.4. 当存储过程和函数被执行的时候,SQL Manager会到procedure cache中去取相应的查询语句,如果在

       procedure cache里没有相应的查询语句,SQL Manager就会对存储过程和函数进行编译。

Procedure cache:中保存的是执行计划,当编译好之后就执行procedure cache中的execution plan,之后SQL SERVER会根据每个execution plan的实际情况来考虑是否要在cache中保存这个plan,评判的标准一个是这个execution plan可能被使用的频率;其次是生成这个plan的代价,也就是编译的耗时。保存在cache中的plan在下次执行时就不用再编译了。

 9.全国各地,多个地点上万或更多用户同时向一个web站点发请求,怎么处理这种情况?

9.1.修改IIS配置,提高连接用户数量。

9.2 使用消息队列,MSMQ(此点需要论证)

10.描述事务?

  定义:事务(Transaction)是并发控制的基本单位。所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。特性ACID:原子性(Atomicity )、一致性( Consistency )、隔离性( Isolation)和持久性(Durabilily)。

11.什么是Remoting?(没使用过,上网搜索)

12.Socket开发常用类及方法?

 http://blog.csdn.net/andrew_wx/article/details/6629721

13.类序列化的关键字?

  [Serializable]

14.C#三元运算符?

  ?:

 

posted @ 2013-08-30 13:06  野狼wolf  阅读(122)  评论(0编辑  收藏  举报