image

编辑人: 舍溪插画

calendar2025-03-09

message4

visits202

asp.net面试题

一、IIS Session有什么重大的BUG?微软提出了什么解决方案?
解:在由于在IIS中有进程回收机制,系统繁忙时候会导致Session丢失,可以用Sate Server 或Sql Server等数据库的方式来进行Session存取,不过该方法的速度慢,并且无法捕获Session的END事件。
二、什么是asp.net的用户控件(User Control)?
解:在 ASP.NET 网页中使用 Web 服务器控件外,还可以使用与 ASP.NET 页相同的语法,创建可重复使用的自定义控件,这些控件称作用户控件。用户控件用 .ascx 扩展名保存为文本文件。用户控件允许对页面进行分区和重用。
用户控件有称复合控件:其工作原理同asp.net基本相同,可以在用户控件中添加现有的服务器控件或标记,并定义属性和方法然后可以嵌入asp.net页面充当一个单元格;
三、列举ASP.NET页面传值的几种方式?
解:1,Session
特点:asp.net中可以有效的设置session的存储方式,位置,sessionid是否依赖于cookie;
缺点:简单但是容易丢失
用法: 传值方式:Session[“a”]=”b”;接收方式Session[“a”]
2,Cookie
缺点:安全性低,受客户端设置的限制;
用法:使用Request.Cookies(读取信息)、Response.Cookies(写入信息)或用HttpCookieCollection直接创建Cookie对象 ;
3,POST
特点:将隐秘的数据存在隐藏域中有from提交; 传输量大
用法:在客服端form指定action目标后,在服务器端使用Request.Form[“Id”]获取
4,GET
特点:简单,方便;传输量小
用法:如Response,Redirect(“index.aspx?a=1”); 使用Requst.QuerySring[“a”]接收
5,Cache
特点:效率高,能直接存储对象,存在缓存中
缺点:数据更新不及时;
用法:Cache[“d”]
6,Application
特点:直接存储对象,整个站点共享数据
用法:Application[“a”]==”D”传值; Application[“a”]接收;
7,ViewState
特点:将页面各个控件极其所存数据序列化存在名称为_ViewState的隐藏中, 修正:前面总结有误,ViewState只能在当前页面传递数据,不能进行跨页面传输数据;
用法:ViewState[“a”]=”asdasdf”;
8,Static
特点:效率高;
用法:在Class中声明静态变量
四、方法重载需要满足的条件?
1、具有相同的方法名;
2、参数数目不同;
3、参数数目相同时候,其参数类型的顺序不能相同;
4、参数返回类型不同的同时要保重参数数目不同或参数类型顺序不同或参数类型不同
5、参数返回类型相同的同时要保重参数数目不同或参数类型顺序不同或参数类型不同
五、 private、 protected、 public、 internal 修饰符的访问权限。
1、 private : 私有成员, 在类的内部才可以访问。
2、protected : 保护成员,该类内部和继承类中可以访问。
3、public : 公共成员,完全公开,没有访问限制。
4、internal: 在同一命名空间内可以访问。
六、C#中的委托是什么?事件是不是一种委托?
解一、委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向一个函数的引用;
解二、是,是一种特殊的委托;
七、java于php和asp.net三者有什么区别?
1、java:是一种可以撰写跨平台应用软件的面向对象的程序设计语言,跨平台性强,性能好,适合做系统和一些大型网站, 开发周期长;
2、php :内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的 脚本语言 ,其运行速度快,适合做一些中小型企业看法web程序,且所有的软件都是开源免费的,可以减少投入。
3、asp.net:是一种使嵌入网页中的 脚本 可由因特网服务器执行的服务器端脚本技术。 指 Active Server Pages(动态服务器页面) ,运行于 IIS 之中的程序 。适合做web、windowforms 等开发
八、CTS、CLS、CLR分别指什么?
1、通用语言系统;2、通用语言规范;3、通用语言运行库;
九、什么事应用程序域?
1、可以理解为一种轻量级进程,占用资源小,起着一定的安全作用;
十、什么是拆箱于装箱?
1、从值类型接口转换为引用类型为装箱,冲应用类型转换为值类型接口为拆箱;
十一、简述:公共语言进行时、 公共类型系统、公共语言规范?
1、公共语言运行时( Common Language Runtime):指.NET框架应用程序的执行引擎;
2、公共类型系统( Common Type System):指;多信息类型系统,被内置在公共语言进行时中;
3、公共语言规范(Common Language Specification):是一组结构和限制,用作库编写者和编译器编写者的向导;
十二、 ADO.NET中的五个主要对象 
1、Connection :主要是开启程序和数据库之间的连接。没有利用连接对象将数据库打开,是无法从数据库中取得数据的。 Close 和 Dispose 的区别, Close 以后还可以 Open , Dispose 以后则不能再用。
2、Command :主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及调用存在数据库中的存储过程等。这个对象是架构在 Connection 对象上,也就是 Command 对象是透过连接到数据源。
3、DataAdapter :主要是在数据源以及 DataSet 之间执行数据传输的工作,它可以透过 Command 对象下达命令后,并将取得的数据放入 DataSet 对象中。这个对象是架构在 Command 对象上,并提供了许多配合 DataSet 使用的功能。
4、DataSet :这个对象可以视为一个暂存区( Cache ),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来, DataSet 是放在内存中的 。 DataSet 的能力不只是可以储存多个 Table 而已,还可以透过 DataAdapter 对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。 DataSet 对象可以说是 ADO.NET 中重量级的对象,这个对象架构在 DataAdapter 对象上,本身不具备和数据源沟通的能力;也就是说我们是将 DataAdapter 对象当做 DataSet 对象以及数据源间传输数据的桥梁。 DataSet 包含若干 DataTable 、 DataTableTable 包含若干 DataRow 。
5、DataReader :当我们只需要循序的读取数据而不需要其它操作时,可以使用 DataReader 对象。 DataReader 对象只是一次一笔向下循序的读取数据源中的数据,这些数据是存在数据库服务器中的,而不是一次性加载到程序的内存中的,只能(通过游标)读取当前行的数据,而且这些数据是只读的,并不允许作其它的操作。因为 DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用 DataReader 对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。
ADO.NET 使用 Connection 对象来连接数据库,使用 Command 或 DataAdapter 对象来执行 SQL 语句,并将执行的结果返回给 DataReader 或 DataAdapter , 然后再使用取得的 DataReader 或 DataAdapter 对象操作数据结果。
十三、 override 与重载( overload )的区别 
1、重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要。 重载( overload )是面向过程的概念。
Override 是进行基类中函数的重写。 Override 是面向对象的概念。
十四、什么是装箱 (boxing) 和拆箱 (unboxing) ? 
1、 Object 是引用类型,但是它的子类 Int32 竟然不能去 Object 能去的“要求必须是引用类型” 的地方,违反了继承的原则,所以需要把 Int32 装在 Object 中才能传递。
1 )、 装箱:从值类型接口转换到引用类型。
2)、拆箱:从引用类型转换到值类型。 ED:object obj = null;// 引用类型
obj = 1;// 装箱,boxing。把值类型包装为引用类型。
int i1 = (int)obj;// 拆箱。unboxing
十五、 堆和栈的区别? 
栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义; 局部值类型变量、值类型参数等都在栈内存中 。
堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。
十六、能用 foreach遍历访问的对象【 需要实现 IEnumerable 接口或声明 GetEnumerator 方法的类型。】
十七、 值类型和引用类型的区别?
1、 将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
2、 值类型不可能派生出新的类型:所有的值类型均隐式派生自 System.ValueType 。但与引用类型相同的是,结构也可以实现接口。
3、 值类型不可能包含 null 值:然而,可空类型功能允许将 null 赋给值类型。
4、 每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。
十八、abstract class和interface有什么区别? 
1、 相同点: 都不能被直接实例化 ,都可以通过继承实现其抽象方法。
2、不同点: 接口支持多继承;抽象类不能实现多继承。
接口只能定义行为;抽象类既可以定义行为,还可能提供实现。
接口可以用于支持回调( CallBack );抽象类不能实现回调,因为继承不支持。
接口只包含方法 (Method), 属性 (Property), 索引器 (Index), 事件 (Event) 的签名,但不能定义字段和包含实现的方法;
抽象类可以定义字段、属性、包含有实现的方法。
接口可以作用于值类型 (Struct) 和引用类型 (Class) ;抽象类只能作用于引用类型。例如, Struct 就可以继承接口,而不能继承类。
十九、事务更新数据表中系统时间字段,在利用事务获取最新更新的数据。
1、创建更新时间事务
begin Transaction
declare @errorNumber int
set @errorNumber=0
update 表名 set 系统时间字段 =getdate() where Id=修改数据编号
set @errorNumber=@errorNumber+@@error
if @errorNumber<>0
rollback transaction
else
commit transaction
2、通过事务查询
begin transaction
declare @errorNumber int
set @errorNumber=0
select * from 表名 where 系统时间字段=(select Max(系统时间字段) from 表名)
set @errorNumber=@errorNumber+@@error
if @errorNumber<>0
rollback transaction
else
commit transaction

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:asp.net面试题

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share