asp程序员面试问题.docx

上传人:b****4 文档编号:24279150 上传时间:2023-05-26 格式:DOCX 页数:27 大小:34.49KB
下载 相关 举报
asp程序员面试问题.docx_第1页
第1页 / 共27页
asp程序员面试问题.docx_第2页
第2页 / 共27页
asp程序员面试问题.docx_第3页
第3页 / 共27页
asp程序员面试问题.docx_第4页
第4页 / 共27页
asp程序员面试问题.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

asp程序员面试问题.docx

《asp程序员面试问题.docx》由会员分享,可在线阅读,更多相关《asp程序员面试问题.docx(27页珍藏版)》请在冰豆网上搜索。

asp程序员面试问题.docx

asp程序员面试问题

程序员面试题

(一)

2008年11月16日星期日16:

15

复习题

1.什么是类?

什么是结构体?

二者有什么区别?

相同点是什么?

你经常使用类还是结构体?

为什么?

类:

同一类对象共同属性和行为的抽象

结构体:

同一类共同属性和行为的抽象

二者区别:

类:

引用类型结构体:

值类型

二者相同点:

对共同属性和行为的抽象

2..怎样理解静态变量和静态方法?

静态构造函数的作用是什么?

static

静态变量:

属于类,不属于对象

静态方法:

不用创建类的实例,直接使用类的方法,方法变量在栈上,

静态构造函数的作用:

当初始化类的静态数据成员,在代码加载时执行;程序中无法调用静态构造函数,此前的任何修饰符都是无效的;静态构造函数,没有参数对象实例不能访问静态成员,静态成员也不能访问非静态成员(可以利用传参数的方式达到访问的目的)

3.值类型与引用类型有什么区别?

值类型:

数据存储在栈上,直接存储数据本身

引用类型:

数据存储在堆上,在栈上引用其地址

二者区别:

l所有内置对象,除了object和string以外,都是值类型,所有用户定义类型,除了结构体都是引用类型;

lC#内置值类型(13种)

l除了基本类型,C#还有两种值类型:

enum(枚举)和struct(结构);

l编译器会默认带小数点的数位double(双精度)类型,要赋值给一个float(浮点)型变量,需要在数字后面加上f;

l常见转义字符:

\’单引号\”双引号\\反斜杠\0空\a警铃\b回退\f换页\n换行\r回车\t水平制表\v垂直制表

4.override与重载有什么区别?

Override:

覆盖:

在继承关系中,父类中的虚方法,在子类中需要重写时

Overload:

重载:

同一个类中,函数名相同,参数列表不同,实现不同功能

5.你在什么情况下会用到虚方法?

它与接口有什么不同?

子类要重写父类中的方法时,父类中方法应声明为虚方法;

接口:

只有方法声明,没有方法体,可以有属性和索引器(都是方法),有概念上的共同特征,要用接口实现,没有方法体

虚方法:

不但有方法声明,还要有方法体

6.什么是抽象方法?

什么是抽象类?

抽象方法:

只有方法签名,没有方法体

抽象类:

类前加关键字abstract,则为抽象类,抽象类不能创建对象

一个类中,如果有抽象方法,则该类一定为抽象类;但是抽象类中不一定有抽象方法

7.怎样理解类、抽象类、和接口之间的异同?

抽象程度不同:

接口:

最高程度抽象,忽略对象,只考察行为概念,不考虑行为的具体实现

类:

对对象属性和行为的抽象,以及重点考察方法的具体实现过程

抽象类:

二者中间:

行为一样,实现不同

8..c#是一种纯粹面向对象的语言。

面向对象语言具有什么特点?

抽象,封装(结果是类),继承,多态

9.类和类之间有哪些关系?

继承,多态,聚合,组成

10.@的作用是什么?

是转义字符失效,用在常量字符串前

表示常量字符串没有需要转义的字符

程序员面试题

(二)

2008年11月16日星期日16:

17

11.什么是序列化?

为什么要序列化?

(什么时候必须作序列化?

)如何实现序列化?

序列化:

把对象数据成员转化为字节流,只序列化数据成员,不序列化方法

为了把对象保存到存储介质或者在网络上传输,做序列化!

默认的序列化方法:

类的定义前加属性:

Serializable,编译器会将序列化方法添加到类中

自定义序列化方法:

接口:

ISerilizable(GetOjbectData方法,凡序列化的构造函数),还需要加上属性

凡序列化:

BinaryFormatter,SoapFormatter

12.阐述C#中的访问修饰符。

类和类的成员的访问修饰符分别有哪些?

权限是什么?

类中的Public:

任何地方都可用,Internal:

当前程序集中可用

类成员的

Public:

Protected:

本身和子类

Private:

13.什么是操作符重载?

为什么要操作符重载?

如何实现操作符重载?

操作符重载:

在不改变操作符固有的含义情况下,重新定义操作符,目的:

扩大操作符的作用范围,必须公有,静态,放在一个类中

PublicStatic返回类型operator——(参数列表),该操作符,作用在该类上

ClassA

{

PublicStatic返回类型operator——(Aa,。

)//必须出现一个

}

14.C#中有指针吗?

十三种基本数据类型有指针,其他数据类型没有指针,在非安全模式下用

15..c#中的委托是什么?

事件是不是一种委托?

委托的作用是什么?

委托:

是一种特殊的类:

不用Class而用Delegate定义,

目的:

封装一个方法的名称

作用:

取代C++中的函数指针,把方法封装在委托对象中定义委托对象,达到传递方法的目的事件时委托定义的一个变量,事件只能作为类的数据成员出现,不能再方法体中出现作为方法传递

16.什么是应用程序域?

将进程的进一步划分为多个应用程序域,每个应用程序域运行一个应用程序。

应用程序域之间相互隔离,互不影响。

17.怎样理解托管代码?

运行在。

NET平台上的代码,运行在CLR(CommomLanguageRuntime)公共语言运行库上的代码,都是托管代码

18.怎样理解强类型系统?

强类型系统:

声明变量时,就指定其存放的数据类型,如C#;JavaScript是弱类型系统

19.解释装箱和拆箱

装箱:

值类型到Ojbect类型,或者该值类型所实现的任何接口类型之间的转换。

对值类型装箱,会在堆上分配一个实例对象,并将该值复制到新的对象中。

在栈上在堆上

Inti=123;

Objecto=i;

拆箱与该操作相反。

性能问题

程序员面试题(三)

2008年11月16日星期日16:

18

20.const和readonly的区别是什么?

ref、out、和params的作用和区别是什么?

Const:

定义常量,只能在定义时,初始化;

Readonly:

只读变量,可以在定义时初始化,也可以在构造函数里初始化

Ref:

强制引用传递,阻止形参对实参的临时拷贝,实参和形参指向同一存储区域,

Out:

Params:

修饰传递可变参数的数组,

21.这些符号的含意是什么:

&、&&、|、||、!

、^、~。

&:

按位与,

&&:

逻辑与,操作数为逻辑表达式,;

短路现象:

a1=T,a2=F,(a1=null计算A1&&a2汇报错)a1&&a2,a2&&a1,a1||a2,a2||a1,1.结果一样2。

效率不一样。

|:

||:

!

:

逻辑非

~:

按位取反

^:

异或

 

22.CTS、CLS、CLR是什么?

图示VB.Net、C#.net、CTS、CLS、CLR之间的关系?

CTS:

CommonTypeSystem公共类型系统

CLS:

CommonLanguageSpecification公共语言规范

CLR:

CommonLanguageRuntime公共语言运行库

跨语言开发:

CTS;C#.NET,C++,VB等语言遵循CLS,---àCTS---àCLR

23.c#中property与attribute的区别,他们各有什么用处,这种机制的好处在哪里?

Property:

类中的一种成员,如:

方法,索引器,一般格式:

publicstringName{get{returnthis._name;}set{this._name=value}

Attribute:

(本身是一个类)一种解释说明,用来解释如何编译源代码,一般用[……]包含起来

用处:

property:

私有成员的读写;(与索引是同一类东西)避免私有成员的直接暴露。

Attribute:

程序及(代码和注释说明)加入注解和说明,一种系统编译行为

24.TCP、UDP的异同?

TCP:

面向连接的,可靠的,传输控制协议,速度慢

UDP:

非面向连接的,不可靠的,用户数据包协议,速度快

25.怎样把array复制到arraylist中?

Int[]arr=newInt[]{1,0,2,3,4,5,6};

ArrayListlist=newArrayList(arr);

26.将数组a1中从第6个成员起10个数据成员拷贝到数组a2中

Array.Copy(a1,6,a2,0,10);

Array.Sort(a1);升序排序

Array.Reverse(a1);倒序排序

27.string和strbuilder的区别,为什么要写这两个类?

String:

定长的常量字符串。

Strings=“abc”;

Stringbuilder:

可变字符串

S1=“hello”;

S2=“World”;

S1+=s2;

StringBuilderbuilder=newStringBUlder(s1);

Builder.Append(s2);

内部字符数组:

默认为十六个字符

28.什么是程序集?

强命名?

GAC?

程序集:

面向.NETFramework已经编译好的可独立发布最小逻辑单元,

强命名:

strongName标识程序集,加强了的名字,名字+公有密钥(ID)+版本+语言文化信息

GAC:

全局程序集缓存GlobalassemblyCache,本质上是一个文件夹assembly

29.接口有几种实现模式?

请解释接口的显式实现有什么意义?

实现模式:

显示,隐式;实现方法时,前面加上接口的名字,即为显示实现模式,反之,为隐式实现模式

意义:

一个类继承多个接口的时候,签名相同的方法需要实现时,必须使用显示实现模式,以区别于不同的接口

程序员面试题(四)

2008年11月16日星期日16:

18

30.请列出c#中几种循环的方法,并指出他们的不同

For:

带有索引的集合,用For循环

Foreach:

使用范围广,当一个集合实现IEnumerator接口或者GetEnumerator()方法时,可以用该循环方法,

Foreach(Objectoinlist)其中o为只读的。

While:

Do……while:

至少执行一次

31..通过超连接怎样传递中文参数?

HyperLinklink=newHyperLink();

1.Link.NavgatorUrl=string.Format(“~/Default.aspx?

Name={0}”,HttpContext.Current.Server.UrlEncode(“中文名称”));

2.HttpUtility.UrlEncoding();

32.请编程遍历页面上的所有textbox控件并给它赋值为string.empty?

Foreach(System.web.UI.WebControlcontrolinPage.Controls[1].Controls)

{

//typeof(TextBox)

If(controlisTextBox)

{

TextBoxtextbox=controlasTextBox;

textbox.Text=string.Empty;

}

}

33.什么是form表单?

Form表单:

客户端向服务段发送信息,Get:

参数放在Url中,Post:

参数放在body中,

:

用get/post请求方法将该form表单中的数据提交到Default.aspx页面

34.什么是cookie?

什么是session?

Cookie:

在服务器端生成,保存在客户端的键值(name=value)对,向服务器发送请求的时候,如需要,则回发到服务端,服务器端可以禁用Cookie。

Session:

服务器给客户端的一个编号,当一个用户提交了表单时,浏览器会将用户的SessionID自动附加在HTTP头信息中,当服务器处理完这个表单后,将结果返回给SessionID所对应的用户。

区别:

Session是存在服务器端的;而Cookie是存在客户端的!

!

Session更不需要Cookie来支持和不会受浏览器端的设置影响,可记录每个访问者的信息,独立在服务器端,比Cookie安全!

Session是存在内存中的,浏览器关闭它也就”死”了;Cookie是以文件方式存在的,可以修改其”存活”时间。

35.我们讲http协议是无状态的,其含义是什么?

含义:

同一客户向服务器发送的前后的不同请求,是没有关系的。

36..讲一讲你对webservice的理解?

在dotnetframework中,WebService怎么很好的结合xml?

WebService就是一种特殊的Web应用程序,没有界面,客户不能够直接调用,只能由其他的Web应用程序来调用。

Web服务要封装在一个类中,同时要贴上[WebMethod]。

机制:

在Server端为Webserice生成WSDL(Web服务描述语言),

Client端要使用该web服务,首先要从服务端取得WSdl,生成本地Webservice代理类,

Client端通过该代理类与Web服务器进行通讯。

遵循协议:

SOAP:

SimpleObjectAccessProtocal(简单对象访问协议):

它规定了一种封装格式,将传输的数据包装为XML文件,通讯双方按照该协议进行解析。

与XML结合:

Client要取得Web服务器上的Web服务,

首先,向代理类发出请求,该代理类将该请求按照SOAP协议包装为XML文件,传输到Server端。

然后:

在Server端,按照SOAP协议,对请求进行解析,并将处理后的数据,在按照SOAP协议包装为XML文件,传输到Client端,

37.在HTML中,如何合并三行为一行?

如何合并三列为一列?

rowspan=“3”;Colspan=“3”;

38.ASP.Net的身份验证方式有哪些?

什么原理?

身份验证:

Windows:

Windows身份验证与IIS身份验证结合,确保ASP。

NET应用程序安全。

Forms:

使用登陆窗体验证用户的用户名和密码,

未经过身份验证的用户被重定向到登陆页面,

用户在页面上提供凭据和提交窗体。

Asp。

net成员管理和登陆控件。

Passport:

微软提供的集中身份验证服务。

该服务为成员站点提供单一登陆和核心配置文件服务。

39.什么是WebPart?

什么是MasterPage?

你会使用吗?

WebPart:

ASP.NETWeb部件功能集。

MasterPage:

母板页

程序员面试题(五)

2008年11月16日星期日16:

19

40.什么是Soap?

作用是什么?

Soap:

SimpleobjectAccessprotocol简单对象访问协议

作用:

远程对象抽取;在提供Webservice服务时,客户端服务器之间遵循Soap协议,传输XML数据包

41.什么是MIME(协议)类型?

你知道哪些MIME类型?

你用过吗?

MIME:

MultipurposeInternetMailExtension多用途Internet邮件扩展,MIME类型用于指定客户端Web浏览器和邮件应用程序处理已进制数据的方式,传输电子邮件,发送附件HTTP支持MIME;

MIME类型:

42.用.net做b\s结构的系统,你是用几层结构来开发,每一层的关系以及为什么要这样分层?

三层结构:

数据层:

数据库和存储过程,以及ADO.NET所写的数据库访问接口(C#代码中最好不要出现SQL语句。

触发器最好少用。

触发器的BUG很难调试。

游标也要少用)

业务逻辑层:

业务流程的表现层次,主要展示数据的处理和流向,核心,实现各种业务功能。

表示层:

用页面展示业务层功能,并从中接受参数,传递给业务层aspx页面组成

好处:

各层相互独立,互不影响。

某一层如果有变动,其他曾的代码或设置不需要更改。

43.解释ADO.Net中的连接池。

连接池:

为每个唯一的e连接字符串创建的e。

当创建一个池后,将创建多个连接对象并将其添加到该池中,以满足最小池大小的要求。

将根据需要添加到池中,直至达到最大池大小。

连接池可以显著提高应用程序的性能和可缩放性。

ADO。

NET自动使用连接池,系统维护一定数目的e连接。

44.解释WSDL、UDDI及其作用;

Wsdl:

WebServiceDscriptionLanguage;Web服务描述语言在服务器提供WebService时,客户端获得服务器端的WsDl;生成web服务代理类,与服务器端进行通讯

UDDI:

Web服务的黄页。

45.DataGrid(或Gridview)中有一超链接列(TID),如何取出值(实现页面跳转),写出代码

for(inti=0;i

{

Controlctl=this.GridView1.Rows[i].FindControl(“HyperLink”);

if(ctlisHyperLink)

{

HyperLinklink=ctlasHyperLink;

link.NavigateUrl=link.NavigateUrl;

}

}

46.写出DataGrid(或Gridview)中实现分页的方法。

如果要显示的数据量很大,你有什么办法加速服务器的响应速度?

GridViewID=“GridView”runat=“server”AutoPaging=“true”/>

数据量很大时,可以在数据库中分页,

createprocedureReadRecord

@StartIndexint,

@EndIndexint

as

declare@Countint

set@count=@EndIndex-@StartIndex+1

declare@UpCountint

set@UpCount=@StartIndex-1

declare@sqlvarchar(1000)//拼凑SQL字符串,条件要凑成SQL

set@sql='selecttop'+str(@Count)+'*fromOrders'

+'whereOrderIDnotin(selecttop'+str(@UpCount)+'OrderIDfromOrdersorderbyOrderID)'

execsp_executesql@sql//将查询语句作为字符串传递给存储过程,调用系统得存储过程,来执行拼接好的sql语句

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

数据库分页:

createprocedurePageingInDataBase

@pageNoint,

@pageSizeint

As//创建临时表,临时表的结构只设为两个字段,(一个子增长字段,一个所要查询表的ID主键),

//这样做表结构简单,插入的效率比较高

declare@tempTabletable//声明临时表,将ID号插入该表

OrderIDint,

OrderNointidentity(0,1)//子增长字段

insertinto@tempTable(OrderID)//将主表的ID插入临时表

(selectOrderIDfromOrders)

declare@startIndexint//设置每页的起始索引

set@startIndex=@pageNo*@pageSize

declare@endIndexint//设置每页的结束索引

set@endIndex=(@pageNo+1)*@pageSize-1

selecto.OrderID,o.CustomerID//内连接,选择出每页数据

from@tempTabletinnerjoinOrdersoont.OrderID=o.OrderID

wheret.OrderNo>=@startIndexandt.OrderNo<=@endIndex

--droptable@tempTable//临时表用完之后,自动消失

execPageingInDataBase0,10//测试

47.定义一个用户定义控件(第三方控件),并添加一个属性和事件(事件属性)

48.说明数据库表建立索引的好处和缺点

索引:

查询速度快,对增删改不利;

聚集索引(物理索引:

):

磁盘上的记录;

逻辑索引:

本质是一张表。

49.在页面中点击按钮,实现弹出窗口,提示”是否继续?

”,写出代码

FunctionPop()

{Alert(“是否继续?

”);}

程序员面试题(六)

2008年11月16日星期日16:

20

50.实现四舍五入小数点后两位

A=8.235;

Double.parse(String.Format(“{0:

n2}”,a));

Double.parse(String.Format(“{0:

0.00}”,a));

51.产生一个流水号,以ID开头后跟6为数字如ID000002不足六位以0补充

a=5;

string.Format(“ID”+”{0:

d6}”,a);

52.解释aspx、aspx.cs文件、区别及工作原理;

Aspx:

Aspx

公共基类Page

页面的后台文件_Default.cs

中间类

页面:

Aspx

Page页面对象1:

HTML

Page页面对象2:

HTML

53.写一个WebService的类并实现返回”GoodMorning!

”的字符串的方法,要求必须提供用户名和密码才能存取这个WebService。

利用SOAP,将用户的验证信息写在Header里面

PublicClassService:

System.Web.Services.WebService

{PublicService(){}

[WebMethod]

PublicstringGetString(stringu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1