NET面试必看知识点一.docx
- 文档编号:5707540
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:20
- 大小:25.83KB
NET面试必看知识点一.docx
《NET面试必看知识点一.docx》由会员分享,可在线阅读,更多相关《NET面试必看知识点一.docx(20页珍藏版)》请在冰点文库上搜索。
NET面试必看知识点一
.NET面试必看知识点
(一)
1:
维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?
为什么
答:
尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策
2:
ADO。
NET相对于ADO等主要有什么改进?
答ADO数据以Recordset形式存储ADO.NET以DataSet形式存储
Recordset对数据库持续连接访问ADO.NET提供对数据库断开连接
ADO.NET与ADO相比,优势在于提供了数据集和数据适配器,有利于实现分布式处理,降低对数据库服务器资源的消耗。
3:
ASP。
NET与ASP相比,主要有哪些进步?
答可以使用强类型语言页面是编译,执行速度快,增加安全性和可靠性,通过继承机制来支持代码的重用,提供声明性服务器控件减少代码行数
Asp需要解释,执行速度慢,重用代码不方便,没有调试机制
4:
C#中的委托是什么?
事件是不是一种委托?
答委托本质上是一种“方法接口”,它相当于C/C++中的函数指针,当然它比函数指针安全,在C#中通常用于事件处理。
与JAVA相比,可以避免使用大量小粒度的匿名类。
(不过,也许微软就是使用类似于JAVA的匿名类实现委托的,只不过从字面上看起不是那么回事罢了,谁知道呢?
)
事件不是委托,不过由于事件的性质决定了处理它的程序逻辑能访问的参数,因此,在C#中处理事件的逻辑都包装为委托(一种“方法接口”)。
实际上,如果你处理自定义的事件,就像JAVA中那样用接口实现也是可以的,不过这么做在C#一般没有什么特别的好处。
5:
new有几种用法
第一种:
newClass();
第二种:
覆盖方法
publicnewXXXX(){}
第三种:
new约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。
6:
如何把一个array复制到arrayList里
答foreach(objectoinarray)arrayList.Add(o);
7:
datagrid.datasouse可以连接什么数据源
答[dataset,datatable,dataview]dataset,datatable,dataview,IList
8:
概述反射和序列化
答反射:
程序集包含模块,而模块包含类型,类型又包含成员。
反射则提供了封装程序集、模块和类型的对象。
您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。
然后,可以调用类型的方法或访问其字段和属性
答序列化:
序列化是将对象转换为容易传输的格式的过程。
例如,可以序列化一个对象,然后使用HTTP通过Internet在客户端和服务器之间传输该对象。
在另一端,反序列化将从该流重新构造对象。
9:
概述o/rmapping的原理答利用反射,配置将类于数据库表映射
10:
类成员有()种可访问形式
答可访问性:
public,protected,private,internal
11:
用sealed修饰的类有什么特点
答sealed修饰符用于防止从所修饰的类派生出其它类。
如果一个密封类被指定为其他类的基类,则会发生编译时错误。
密封类不能同时为抽象类。
sealed修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。
具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。
11:
列举ADO.NET中的五个主要对象,并简单描述
connection,command,dataReader,dataAdapter,dataset...
12:
执行下面代码后:
StringstrTemp="abcdefg某某某";
IntiSystem.Text.Encoding.Default.GetBytes(strTemp).Length;
Intj=strTemp.Length;
问:
i=(14);j=(11)
i=(14);j=(11)中文两个字节
13:
C#中,stringstr=null与stringstr="",请尽量用文字说明区别。
(要点:
说明详细的内存空间分配)
答stringstr=null是不分配内存空间,而stringstr=""给它分配长度为空字符串的内存空间。
14:
概述.NET里对remoting和webservice两项技术的理解和实际中的应用。
答远程逻辑调用,remoing接口只能用在.net中
15:
什么是code-behind技术
答aspxandcs代码隐藏
16:
概述三层结构体系
答表示层数据层业务层
17:
用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
答:
一般为3层
数据访问层,业务层,表示层。
数据访问层对数据库进行增删查改。
业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。
表示层为了与用户交互例如用户添加表单。
优点:
分工明确,条理清晰,易于调试,而且具有可扩展性。
缺点:
增加成本。
18:
什么是ASP.net中的用户控件
答:
用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整.
19:
什么叫应用程序域?
什么是受管制的代码?
什么是强类型系统?
什么是装箱和拆箱?
什么是重载?
CTS、CLS和CLR分别作何解释?
答应用程序域可以理解为一种轻量级进程。
起到安全的作用。
占用资源小
受管制的代码:
unsafe:
非托管代码。
不经过CLR运行。
强类型系统RTTI:
类型识别系统。
装箱就是把值类型到引用类型的转换
拆箱就是引用类型到值类型的转换
重载方法名相同不同个数的参数或者指定不同参数类型
CTS:
通用语言系统。
CLS:
通用语言规范。
CLR:
公共语言运行库。
classbox{
intaa(objecti)
{}
objectbb()
{}
}
intbb=5
newbox().aa(bb)//装箱
intconver=(int)newbox().zz();//拆箱
//重载
publicvoidaaa(intrad)
{}
publicvoidaaa(intlen,intbre)
{}
publicvoidaaa(stingstr)
{}
20:
列举一下你所了解的XML技术及其应用
答:
xml可以统一数据格式,XML可是好东西,保存配置,站与站之间的交流,WEBSERVICE都要用它.
21:
ADO.net中常用的对象有哪些?
分别描述一下。
答:
Connection对象用于在应用程序和数据库之间的连接
Command可以检索和操纵数据库中的数据
DataAdapter对象充当DataSet和数据源之间用于检索和保存数据的桥接器
DataSet对象从数据库检索的数据可以存储在其中能够以XML形式保存
DataReader是查询结果的一种只进。
只读的视图不具有DataSet的任何复杂功能
所以可以加快访问和查看数据的速度不提供断开式访问
22:
如何理解委托?
答:
据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.
msdn2005中是这样解释的:
委托具有以下特点:
委托类似于C++函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。
23:
C#中的委托是什么?
事件是不是一种委托?
答委托可以把一个方法作为参数代入另一个方法。
委托可以理解为指向一个函数的引用。
是,是一种特殊的委托
24:
UDP连接和TCP连接的异同。
答:
udp前者只管传,不管数据到不到,无须建立连接.tcp后者保证传输的数据准确,须要连结.
25:
ASP.net的身份验证方式有哪些?
分别是什么原理?
答:
Forms认证,windows集成认证等,passport验证None
26:
进程和线程分别怎么理解?
答:
进程是老子,线程是儿子,没有老子就没有儿子,一个老子可以有多个儿子.一个儿子可以成为别人的儿子,一个老子也可以为别的老子生儿子.
27:
什么是code-Behind技术。
答:
代码分离,这是个明智的东西,或者可以理解成HTML代码写在前台,C#代码写在后台.当然前台也有脚本,类的调用等,其实写在一起也是可以的.
28:
net中读写XML的类都归属于哪些命名空间?
答:
System.Xml
29解释一下UDDI、WSDL的意义及其作用
答:
UDDI用于注册各个服务提供商提供的服务以便可以共享它们它还有助于WEB服务客户或web用户查找该Web服务
wsdl是web服务描述语言(webServicesDescriptionLanguage)
30:
什么是SOAP,有哪些应用。
答:
SOAP(SimpleObjectAccessProtocol)简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。
使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。
这种相互通信采用的是XML格式的消息,具体请看
31:
如何理解.net中的垃圾回收机制。
答GC?
对象创建了总要清除啊,不然内存哪够用?
32:
常用的调用webservice方法有哪些?
答HTTP-getHttp-postHttp-soap
33概述.NET里对remoting和webservice两项技术的理解和实际中的应用。
答远程逻辑调用,remoing接口只能用在.net中
34:
简述private、protected、public、internal修饰符的访问权限。
答private:
私有成员,在类的内部才可以访问。
protected:
保护成员,该类内部和继承类中可以访问。
public:
公共成员,完全公开,没有访问限制。
internal:
在同一命名空间内可以访问。
35:
列举ASP.NET页面之间传递值的几种方式。
答.1.使用QueryString,
源页面
stringurl;
url="anotherwebform.aspx?
name="+TextBox1.Text
Response.Redirect(url);
目标页面
Label1.Text=Request.QueryString["name"];
2.使用Session变量
源页面
Session["name"]=TextBox1.Text;
Session["email"]=TextBox2.Text;
Server.Transfer("anotherwebform.aspx");
目标页面
Label1.Text=Session["name"].ToString();
Label2.Text=Session["email"].ToString();
Session.Remove("name");
Session.Remove("email");
3.使用Server.Transfer
源页面代码:
publicstringName
{
get{
returnTextBox1.Text;}
}
//然后调用Server.Transfer方法
privatevoidButton1_Click
(objectsender,System.EventArgse)
{
Server.Transfer("anotherwebform.aspx");
}
目标页面代码:
privatevoidPage_Load
(objectsender,System.EventArgse)
{
WebForm1wf1;
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
}
36:
一列数的规则如下:
1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算法实现。
答:
publicclassMainClass
{
publicstaticvoidMain()
{
Console.WriteLine(Foo(30));
}
publicstaticintFoo(inti)
{
if(i<=0)
return0;
elseif(i>0&&i<=2)
return1;
elsereturnFoo(i-1)+Foo(i-2);
}
}
37:
override与重载的区别
答:
override与重载的区别。
重载是方法的名称相同。
参数或参数类型不同,进行多次重载以适应不同的需要
Override是进行基类中函数的重写。
为了适应需要。
38:
请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
答:
foreach(System.Windows.Forms.Controlcontrolinthis.Controls)
{
if(controlisSystem.Windows.Forms.TextBox)
{
System.Windows.Forms.TextBoxtb=(System.Windows.Forms.TextBox)control;
tb.Text=String.Empty;
}
}
39:
请编程实现一个冒泡排序算法?
答:
int[]array=newint[*];
inttemp=0;
for(inti=0;i { for(intj=i+1;j { if(array[j] { temp=array[i]; array[i]=array[j]; array[j]=temp; } } } 40: 描述一下C#中索引器的实现过程,是否只能根据数字进行索引? 答: 不是。 可以用任意类型。 41: 求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m 答: intNum=this.TextBox1.Text.ToString(); intSum=0; for(inti=0;i { if((i%2)==1) { Sum+=i; } else { Sum=Sum-I; } } System.Console.WriteLine(Sum.ToString()); System.Console.ReadLine(); 42: 在下面的例子里 usingSystem; classA { publicA() { PrintFields(); } publicvirtualvoidPrintFields(){} } classB: A { intx=1; inty; publicB() { y=-1; } publicoverridevoidPrintFields() { Console.WriteLine("x={0},y={1}",x,y); } 当使用newB()创建B的实例时,产生什么输出? 答: X=1,Y=0;x=1y=-1 43: net中读写数据库需要用到那些类? 他们的作用? 答: DataSet: 数据存储器。 DataCommand: 执行语句命令。 DataAdapter: 数据的集合,用于填充。 44: ASP.net的身份验证方式有哪些? 分别是什么原理? 答: Windwos(默认)用IIS... From(窗体)用帐户 Passport(密钥) 45: 在.net中,配件的意思是? 答: 程序集。 (中间语言,源数据,资源,装配清单) 46: netRemoting的工作原理是什么? 答: 服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置 47: 根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写: namespacetest { publicdelegatevoidOnDBOperate(); publicclassUserControlBase: System.Windows.Forms.UserControl { publiceventOnDBOperateOnNew; privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse) { if(e.Button.Equals(BtnNew)) { //请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。 } } } 答: if(OnNew! =null OnNew(this,e; 48: SQLSERVER服务器中,给定表table1中有两个字段ID、LastUpdateDate,ID表示更新的事务号,LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号 答: SelectIDFROMtable1WhereLastUpdateDate=(SelectMAX(LastUpdateDate)FROMtable1) 49: 根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁? 并简要说明理由。 publicvoidtest(inti) { lock(this) { if(i>10) { i--; test(i); } } } 答: 不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。 但如果把int换做一个object,那么死锁会发生) 50: 简要谈一下您对微软.NET构架下remoting和webservice两项技术的理解以及实际中的应用。 答: WS主要是可利用HTTP穿透防火墙。 Remoting可以利用TCP/IP,二进制传送提高效率 51: 用C#实现以下功能 a产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复 答: ListL=newList(); Randomrandom=newRandom(); for(inti=1;i<=100;i++) { if(L.IndexOf(i)<0) { L.Add(random.Next(1,100)); } } b对上面生成的数组排序,需要支持升序、降序两种顺序 答L.Reverse(L); L.Sort(L); 52: 请说明.net中的错误处理机制,并举例 答异常是从Exception类类继承的对象。 异常从发生问题的代码区域引发,然后沿堆栈向上传递,直到应用程序处理它或程序终止。 try {//执行代码,不确定是否会出错} catch {//出错处理} finally {//无论怎样,都要执行} 53: 请说出强名的含义 答垃圾回收的原理是根据是否空引用,和该数据类型占用内存来判断该收回多少内存.强类型说白就是必须要有个数据类型. 54: 请列出c#中几种循环的方法,并指出他们的不同 答FORWHILEforeachdowhile 55: 请指出.net中所有类型的基类 答object 56: 请指出GAC的含义 答全局访问缓存 57: SQLSREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值 答INSERTINTOjobs(job_desc,min_lvl,max_lvl) VALUES('Accountant',12,125) 58: 什么是WEB控件? 使用WEB控件有那些优势? 答web控件就是可以在服务器执行的控件,优势在于可以回传数据,带有事件驱动 59: 请解释ASP。 NET中以什么方式进行数据验证? 答.net中提供了几个数据验证控件,可以在服务器端或者客户端进行验证。 60: 请谈谈对正则表达式的看法? 答主要用在字符串的匹配上面,与具体的语言环境无关。 61: ASP。 NET中共有几种类型的控件? 各有什么区别? 答Html控件传统的html标记 Web控件可以回传数据,事件驱动 自定义控件在原有控件的基础上增加功能 复合控件多个子控件复合成一个新的控件 62: WEB控件可以激法服务端事件,请谈谈服务端事件是怎么发生并解释其原理? 自动传回是什么? 为什么要使用自动传回。 答通过实现IPostBack这个接口来执行事件。 自动回传就是AutoPostBack,使用自动回传可以监视客户端变化情况并将这种改变返回到服务器端 63: WEB控件及HTML服务端控件能否调用客户端方法? 如果能,请解释如何调用? 答能,服务器端控件在html中表现形式还是html标记,所以可以执行客户端事件,有多种方式: 1、control.Attributes["onclick"]="...;"; 2、 64: 请解释ASP。 NET中的web页面与其隐藏类之间的关系? 答继承的关系 65: 什么是viewstate,能否禁用? 是否所用控件都可以禁用? 答可以全部禁用,viewstate就是hid
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NET 面试 知识点