fightgirl 2010-08-12
asp.net基础笔试题(全解完整答案).
面向对象的思想主要包括什么?
对向对象程序设计(OOP)思想:封装、继承、多态
封装:用抽象的数据类型将数据和基于数据操作封装在一起,数据被保护在抽象类型内部。
继承:子类拥有父类的所有数据和操作。
多态:一个程序中同名的不同方法共存的情况。有两种形式的多态:重载与重写。
2.什么是ASP.net中的用户控件?
用户控件就是.ascx,复合控件就是.DLL
3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
应用程序域:一种边界,它由公共语言运行库围绕同一应用程序范围内创建的对象建立。
受管制的代码:受管制的代码是在CLR虚拟机中运行的代码。
强类型系统:C#是强类型语言;因此每个变量和对象都必须具有声明类型。
装箱和拆箱:
装箱就是隐式的将一个值型转换为引用型对象。比如:
inti=0;
Syste.Objectobj=i;
这个过程就是装箱!就是将i装箱!
拆箱就是将一个引用型对象转换成任意值型!比如:
inti=0;
System.Objectobj=i;
intj=(int)obj;
这个过程前2句是将i装箱,后一句是将obj拆箱!
值型就是在栈中分配内存,在申明的同时就初始化,以确保数据不为NULL;
引用型是在堆中分配内存,初始化为null,引用型是需要GARBAGECOLLECTION来回收内存的,值型不用,超出了作用范围,系统就会自动释放!
重载:类中的方法名相同,但参数的个数或类型不同
CTS(CommonTypeSystem)(通用类型系统):描述了类型的定义和行为。
CLS(CommonLanguageSpecification)通用语言规范
CLR(CommonLanguageRuntime)通用语言运行时
4.列举一下你所了解的XML技术及其应用
xml可以用来做网页(xslt)xml可以当作数据库
5.值类型和引用类型的区别?写出C#的样例代码。
值类型存在内存栈里面,引用类型存在内存堆里面
inti=10;//值类型变量
classa=newclass();//定义类引用类型
6.ADO.net中常用的对象有哪些?分别描述一下。
DataSet对象:表示内存中数据的缓存,可以把它想像成一个临时的数据库,它里可以存多个表
DataTable:而且是断开式的,不用每进行一次操作就对数据库进行更新,从而提高了效率。
DataReader对象:它与DataSet最大的不同是有连接式的,每次对数据库进行存取都会影响到数据库。
Connection对象:用于连接数据库的对象,表示到数据源的一个唯一的连接。
Command对象:表示要对数据库执行的一个SQL语句或一个存储过程。
DataAdapter对象:该对象是与DataSet配合使用的对象,用于把表填充到DataSet,和更新DataSet等
7.如何理解委托?
委托可以理解为函数指针
把方法或者函数包装成一个对象引用,然后就可以作为参数传递。
8.C#中的接口和类有什么异同。
接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念!
而类是负责功能的具体实现!
9.。net中读写数据库需要用到哪些类?他们的作用?
1、DataSet用来无连接的储存多个表的数据,并包含表与表之间的关联关系
2、DataTable用来存储一个表的数据
3、SqlConnection用来创建一个到数据库的连接
4、SqlCommand用来执行SQL语句
5、SqlDataReader用来顺序读取数据
6、SqlDataAdapter用来将数据填充到DataSet或DataTable
10.UDP连接和TCP连接的异同。
前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连接.
11.ASP.net的身份验证方式有哪些?分别是什么原理?
Asp.net的身份验证有有三种,分别是”Windows|Forms|Passport”验证,WINDOWS一般在做企业内部OA的时候用的多一些,FORM一般是做网站用的多他是采用COOKIE机制来实现的,PASSPORT是微软提供的一个WEBSERVICE。
12.进程和线程分别怎么理解?
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
13.什么是code-Behind技术。
简单的说就是代码分离技术,也就是.net中的HTML代码和程序代码分别位于不同的文件,
14.活动目录的作用。(答案不全不好总结)
活动目录是Windows平台的一个核心的部件,活动目录服务提供了一种管理组成网络环境的各种对象的标志和关系的方法。
15..net中读写XML的类都归属于哪些命名空间?(不全看功能而定)
SYSTEM.XML、SYSTEM.DATA、System.io
16.解释一下UDDI、WSDL的意义及其作用。
UDDI:统一描述、发现和集成协议(UDDI,UniversalDescription,DiscoveryandIntegration)是一套基于Web的、分布式的、为Web服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web服务注册以使得别的企业能够发现的访问协议的实现标准。UDDI提供了一组基于标准的规范用于描述和发现服务,还提供了一组基于因特网的实现。
WSDL:描述Web服务的公共接口。这是一个基于XML的关于如何与Web服务通讯和使用的服务描述
17.什么是SOAP,有哪些应用。
SOAP(SimpleObjectAccessProtocol)简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。
18.如何理解.net中的垃圾回收机制。
NETFramework的垃圾回收器管理应用程序的内存分配和释放。每次您使用new运算符创建对象时,运行库都从托管堆为该对象分配内存。只要托管堆中有地址空间可用,运行库就会继续为新对象分配空间。但是,内存不是无限大的。最终,垃圾回收器必须执行回收以释放一些内存。垃圾回收器优化引擎根据正在进行的分配情况确定执行回收的最佳时间。当垃圾回收器执行回收时,它检查托管堆中不再被应用程序使用的对象并执行必要的操作来回收它们占用的内存。
19.常用的调用webservice方法有哪些?
vs.net里选择添加web引用
20.C#中区别多态、重载、重写的概念和语法结构2008年04月26日星期六18:11重写是指重写基类的方法,在基类中的方法必须有修饰符virtual,而在子类的方法中必须指明override。
格式:
基类中:
publicvirtualvoidmyMethod()
{
}
子类中:
publicoverridevoidmyMethod()
{
}
重写以后,用基类对象和子类对象访问myMethod()方法,结果都是访问在子类中重新定义的方法,基类的方法相当于被覆盖掉了。
重载
用于在给定了参数列表和一组候选函数成员的情况下,选择一个最佳函数成员来实施调用。
publicvoidtest(intx,inty){}
publicvoidtest(intx,refinty){}
publicvoidtest(intx,inty,stringa){}
重载特征:
I.方法名必须相同
II.参数列表必须不相同,与参数列表的顺序无关
III.返回值类型可以不相同
=========================
但如果有泛型,就要注意了!
多态
c#的多态性主要体现在类的继承上:
子类继承父类的时候,可能出现同名但方法定义不同的情况,
所以在子类中会将原方法覆盖,实现自身的要求.
usingSystem;
classEmployee
{
virtualpublicvoidCalculatePlay()
{
Console.WriteLine(”Employee”);
}
};
classSalariedEmployee:Employee
{
overridepublicvoidCalculatePlay()
{
Console.WriteLine(”Salary”);
}
};
classPolyApp
{
publicstaticvoidMain()
{
EmployeebaseE1=newEmployee();
baseE1.CalculatePlay();
EmployeebaseE2=newSalariedEmployee();
baseE2.CalculatePlay();
SalariedEmployees=newSalariedEmployee();
s.CalculatePlay();
}
};