首页 > 专栏

程序员面试题

更新时间:2024-03-29 06:02:22 阅读: 评论:0

2024年3月29日发(作者:大学生面试自我介绍)

程序员面试题

1.

new有几种用法

第一种:作为操作符时,用于实例化对象new Class();

第二种:重写父类成员public new XXXX(){}

第三种:new约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。

2.

如何把一个array复制到arrayList里

foreach( object o in array )(o);

3.

u可以连接什么数据源

使用DataSource属性指定要绑定到数据列表控件的值的源。数据源必须是实现tions.

IEnumerable接口(例如ew、ist或System.C

ble)或IListSource接口的对象。如:datat,datatable,dataview, IList

4.

概述反射和序列化

反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对

象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,

可以调用类型的方法或访问其字段和属性。序列化:序列化是将对象转换为容易传输的格式的过程。例如,

可以序列化一个对象,然后使用HTTP通过Internet在客户端和服务器之间传输该对象。在另一端,

反序列化将从该流重新构造对象。

5.

概述o/r mapping的原理

利用反射,配置 将类与数据库表映射

6.

类成员有( )种可访问形式

public

protected

internal

protected internal

private

访问不受限制。

访问仅限于包含类或从包含类派生的类型。

访问仅限于当前程序集。

访问仅限于从包含类派生的当前程序集或类型。

访问仅限于包含类型。

7.

列举中的五个主要对象,并简单描述

8.

C#中,string str = null与string str =””,请尽量用文字说明区别。(要点:说明详细的内存

空间分配)

答:null 关键字是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。string s

tr =”” 分配空间

9.

详述.NET里class和struct的异同!

class:放在 ? struct放在?struct值传递。

类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个

重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”

或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。

10.

什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CT

S、CLS和CLR分别作何解释?

操作系统和运行库环境通常会在应用程序间提供某种形式的隔离。例如,Microsoft Windows使用

进程来隔离应用程序。为确保在一个应用程序中运行的代码不会对其他不相关的应用程序产生不良影响,

这种隔离是必需的。应用程序域提供了一个更安全、用途更广的处理单元,公共语言运行库可使用该单

元提供应用程序之间的隔离。应用程序域为安全性、可靠性、版本控制以及卸载程序集提供了隔离边界。

应用程序域通常由运行库宿主创建,运行库宿主负责在运行应用程序之前引导公共语言运行库。应用程

序域通过作为应用程序状态的容器,使应用程序得以隔离。应用程序域作为应用程序中和它使用的类库

中所定义的类型的容器和边界。同一个类型若被加载到不同的应用程序域中就成为各自独立的客体,实

由它们在各自应用程序域中产生的例亦不可直接共享。例如,对于这些类型的静态变量,每个应用程序

域都有自己的副本,并且这些类型的静态构造函数在每个应用程序域中也要(最多)运行一次。

以运行库为目标的代码称为托管代码。

装箱就是把值类型转成引用类型,拆箱则反之。

重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.

CTS(Common Type System)通用类型系统,CLS(Common Language Specification)公共语言

规范,CLR(Common Language Runtime)是通用语言运行时,

11.

概述三层结构体系

根据所实现的逻辑功能,可以将应用程序结构分为三层:表示层、业务逻辑层、数据访问层(w

eb/business/dataaccess)。数据层从数据库中获取原始数据,业务逻辑层把数据转换成符合业务规

则的有意义的信息,表示层把信息转换成对于用户有意义的内容。

分层设计具有提高应用程序内聚程度、降低耦合,易于扩展、维护和重用等优点。

12.

如何实现MVC模式,举例说明!

同上!web/business/dataaccess

13.

什么是code-behind技术

code-behind技术是将用于显示可见元素的脚本与编程代码放入不同文件,从而达到代码分离。

14.

面向对象的思想主要包括什么?

答:封装、继承、多态

1.

什么是中的用户控件

答:ASP .NET用户控件事能够在其中放置标记和Web服务器控件得容器,然后可以将用户控件作为一

个单元对待,为其定义属性和方法。用户控件继承自ntrol。扩展名为.ascx。

可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一

个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自己写方法

调整.

2.

如何理解委托?

答: 委托类型 (delegate type) 表示对具有特定参数列表和返回类型的方法的引用。通过委托,我

们能够将方法作为实体赋值给变量和作为参数传递。委托类似于在其他某些语言中的函数指针的概念,

但是与函数指针不同,委托是面向对象的,并且是类型安全的。

3.

用aled修饰的类有什么特点

密封类不能用作基类。因此,它也不能是抽象类。密封类主要用于防止派生。由于密封类从不用作基类,

所以有些运行时优化可以使对密封类成员的调用略快。

4.

中读写数据库需要用到哪些类?他们的作用

答: Configuration、Connection、Command、DataAdapter、DataSet、DataReader。

5.

概述.NET里对remoting和webrvice两项技术的理解和实际中的应用。

运行于Internet的分布式应用程序,Web Service是首选的解决方案,因为Web Service能够穿透

足够安全的防火墙,虽然Remoting技术也可以实现这样的功能,但是对于Internet解决方案,Web

Service仍是首选。和Web Service相比,Web Service需要Web服务器的支持,Remoting不需

要Web服务器,它是使用自己的HTTP或者TCP服务器。在内部网络的解决方案中,Remoting拥有

足够的优势,当采用TCP和二进制数据传输的时候,能有更高的效率。不过有一点值得注意:Web Se

rvice可以跨平台运行,而Remoting只能运行在.NET FrameWork的平台下。

6.

C#中的接口和类有什么异同。

类和接口中都可以定义了一系列属性、方法和事件。但接口与类不同的是,接口并不提供实现。接口可

支持多重继承,而类只支持单一继承。接口中的成员不能包含任何的访问修饰符,所有接口成员都隐式

地具有 public 访问属性。接口不能包含常量、字段、运算符、实例构造函数、析构函数或类型,也不

能包含任何种类的静态成员。接口成员声明中包含任何修饰符都属于编译时错误。具体来说,不能使用

修饰符 abstract、public、protected、internal、private、virtual、override 或 static 来声明接

口成员。

7.

执行下面代码后:

String strTemp =”abcdefg某某某”;

int i= es(strTemp).Length;

int j = ;

问:i=();j=();

i=(14 );j=(11 ) 中文两个字节

8.

的身份验证方式有哪些?分别是什么原理?

None

说明

没有 身份验证服务是活动的。注意,IIS 身份验证服务仍可以存在。

身份验证服务将 WindowsPrincipal (

Windows

sPrincipal) 附加到当前请求以启用对 NT 用户或组的授权。

身份验证服务管理 Cookie 并将未经身份验证的用户重定向到登录

Forms

页。它通常与 IIS 选项一起使用以允许匿名访问应用程序。

身份验证服务为护照 SDK(必须安装在计算机上)提供的服务提供了

Passport

一个方便的包装。

9.

进程和线程分别怎么理解?

答: 在计算机科学中,“线程”和“进程”是两个相关的概念。二者都表示必须按特定顺序执行的指令序列。

但是不同线程或进程中的指令可以并行执行。进程存在于操作系统内,并对应于用户可看作为程序或应

用程序的事物。另一方面,线程存在于进程内。因此,线程有时也称作“轻量进程”。每个进程都由一个

或多个线程组成。操作系统使用进程将它们正在执行的不同应用程序分开。线程是操作系统分配处理器

时间的基本单元,并且进程中可以有多个线程同时执行代码。通俗的讲:进程是老子,线程是儿子,没有

老子就没有儿子,一个老子可以有多个儿子.一个儿子可以成为别人的儿子,一个老子也可以为别的老子生

儿子.

10.

中读写XML的类都归属于哪些命名空间?

答:、、

11.

列举一下你所了解的XML技术及其应用

答:XML是数据传送或者数据存储的一种方式。XML是这几年Web开发技术关注的焦点,很多当前最

前沿的技术,如:Web Services、SOAP等都是建立在XML技术之上的。可以说,XML是当前Web

开发得技术基石。保存配置,站与站之间的交流,WEB SERVICE都要用它.

12.

UDP连接和TCP连接的异同。

答:此两者都是计算机之间通信前进行连接的协议。前者只管传,不管数据到不到,无须建立连接.后者保证

传输的数据准确,须要连结。TCP提供有保证的传送、错误更正和数据缓冲。TCP有额外的开销,当应

用程序中的速度和性能需求比可靠性更重要时,开发人员可以使用UDP。

13.

解释一下UDDI、WSDL的意义及其作用。

答:UDDI(Universal Description,Discovery,and Integration)(统一描述、发现和集成),

可以用于发布和发现公共Web服务的目录;WSDL(Web Service Description Language)用于描

述Web服务的XML语法。此描述包含很多详细信息,如查找Web服务(URI)的位置、服务支持的

方法和属性、数据类型和用于与服务交流的协议。UDDI和WSDL用于发现和描述Web服务。

14.

什么是SOAP,有哪些应用。

答:SOAP(Simple Object Access Protocol,简单对象访问协议)是Web服务的通信协议。它是用

来定义消息的XML格式的规范。SOAP定义了如何将程序数据表示为XML,以及如何使用SOAP进行

远程过程调用(RPC)。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可

以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。

15.

根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:

namespace test

{

public delegate void OnDBOperate();

public class UrControlBa : ntrol {

public event OnDBOperate OnNew;

privatevoidtoolBar_ButtonClick(objectnder,rButton

ClickEventArgs e) {

if((BtnNew)) {

//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。

}

}

}

}

答:if( OnNew != null )

OnNew( this, e );

1.

如何理解中的垃圾回收机制。

答: .NET Framework 的垃圾回收器管理应用程序的内存分配和释放。每次您使用 new 运算符创建对象时,运

行库都从托管堆为该对象分配内存。只要托管堆中有地址空间可用,运行库就会继续为新对象分配空间。但是,内

存不是无限大的。最终,垃圾回收器必须执行回收以释放一些内存。垃圾回收器优化引擎根据正在进行的分配情况

确定执行回收的最佳时间。当垃圾回收器执行回收时,它检查托管堆中不再被应用程序使用的对象并执行必要的操

作来回收它们占用的内存。

2.

什么是Web rvices?

XML Web 服务是提供特定功能元素(如应用程序逻辑)的可编程实体,任何数量的、可能是完全不同

的系统都可以用常见的 Internet 标准(如 XML 和 HTTP)进行访问。简单的说,Web Service 就

是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。

3.

如何部署一个页面。

答:1、直接将文件复制到目标服务器。2、首先将站点进行编译,然后将编译后的文件复制到目标服务

器。

4.

能在那些系统中运行?

目前,还只能奔跑在微软的Windows 2000、Windows XP和Windows 2003的系统中,并且需要

微软Internet Information Server(IIS)的支持,微软原计划要让Windows NT4.0也支持,但可能

微软是有些技术问题或市场考虑,还没有实现NT下的的支持。

5.

活动目录的作用

活动目录主要用在分布式的环境中。在分布式环境中,要求有各种信息可以被各种应用很方便地访问读

取。活动目录正式为分布式环境中的信息提供一种访问途径。它提供了一个公共的区域来保存分布式环

境中的各种信息,并且对这些信息进行定位。从开发人员角度看活动目录,可以理解活动目录是一种存

放了应用程序所需要的特定资源信息的“数据库”。活动目录还对这些资源信息的读取和查询进行了优化。

6.

值类型和引用类型的区别?写出C#的样例代码。

值类型的变量直接包含它们的数据,而引用类型的变量存储对它们的数据的引用,后者称为对象。对于

引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可能影响另一个变量所引用的对象。

对于值类型,每个变量都有它们自己的数据副本(除ref和out参数变量外),因此对一个变量的操作

不可能影响另一个变量。所有的值类型均隐式派生自ype。与引用类型不同,从值类型

不可能派生出新的类型。值类型不可能包含null值。

using System;

class MyClass

{

class SomeRef {

public int x;}

struct SomeVal {

public int x;

}

static void Main(string[] args){

SomeRef r1= new SomeRef(); //分配在托管堆上

SomeVal v1 = new SomeVal(); //分配在堆栈上

r1.x = 5; //在托管堆上修改

v1.x = 5; //在堆栈中修改

SomeRef r2 = r1; //仅拷贝引用

SomeVal v2 = v1; //现在堆栈上分配,然后拷贝值

r1.x = 8; //改变了r1.x r2.x

v1.x = 9; //仅改变了v1

ine(r1.x); //8

ine(r2.x); //8

ine(v1.x); //9

ine(v2.x); //5

}

}

7.

公司要求开发一个继承ew类的组件,要求达到以下的特殊功能:

点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataG

rid相似)。根据您的知识,请简要谈一下您的思路:

答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中。

8.

DataReader和DataSet的异同

DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何

对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占

用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去

读取第一条了..

DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全

部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回

传更新操作

9.

C#中Property与Attribute的区别,他们各有什么用处,这种机制的好处在哪里?

答:公共语言运行库允许您添加类似关键字的描述性声明(称为属性 (Attribute))来批注编程元素,

如类型、字段、方法和属性 (Property)。属性 (Attribute) 使您得以向元数据中放置额外的描述性信

息(属性在您编译代码时被发送到元数据中),并可使用运行库反射服务提取该信息。属性 (Attribut

e) 描述如何将数据序列化,指定用于强制安全性的特性,并限制实时 (JIT) 编译器的优化,从而使代

码易于调试。C#通过属性(Property)读取和写入字段,而不直接读取和写入,以此来提供对类中的

字段的保护。C#属性(Property)在实现这种保护的同时,允许用户像访问字段一样访问属性。因此,

属性可用于类的内部封装数据。

10. 什么是Application Pool?

It is the new features in IIS 6.0. An Application Pool can contain one or more applications and

allows us to configure a level of isolation between different Web applications. For example, if

you want to isolate all the Web applications running in the same computer, you can do this by

creating a parate application pool for every Web application and placing them in their corre

sponding application pool. Becau each application pool runs in its own worker process, errors

in one application pool will not affect the applications running in other application pools. Deplo

ying applications in application pools is a primary advantage of running IIS 6.0 in worker proc

ess isolation mode becau you can customize the application pools to achieve the degree of a

pplication isolation that you need

应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他

应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问

题的影响。

11.

C#中要使一个类支持FOREACH遍历,实现过程怎样?

public class DaysOfTheWeek : rable

{ string[] m_Days = { "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat" };

public rator GetEnumerator() {

for (int i = 0; i < m_; i++) {

yield return m_Days[i];

}

}

}

class TestDaysOfTheWeek{

static void Main() {

// Create an instance of the collection class

DaysOfTheWeek week = new DaysOfTheWeek();

// Iterate with foreach

foreach (string day in week) {

(day + " ");

}

}}

12. 在一个ASPX文件中是否可以使用一种以上的语言?

答案让你有点失望,虽然微软的提供了公共语言运行环境(CLR,Common Laguage Runtime),实现了多种编

程语言间的紧密集成,可以允许你从一个VB对象中导出C#所需的对象来,但一个ASPX文件中只能用一种语言,

正如你不能在中使用C#的语法一样。

13. 在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?

Using 引入一个名子空间,或在使用了一个对像后自动调用其IDespo,New 实例化一个对像,或修饰一个方

法,表此方法完全重写此方法

1.

描述一下C#中索引器的实现过程,是否只能根据数字进行索引?

索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器不必根据整数值进行索引,由您决

定如何定义特定的查找机制。

class SampleCollection

{

private T[] arr = new T[100];

public T this[int i]

{

get{

return arr[i];

}

t{

arr[i] = value;

}

}

}// This class shows how client code us the indexer

class Program

{

static void Main(string[] args){

SampleCollection stringCollection = new SampleCollection();

stringCollection[0] = "Hello, World";

ine(stringCollection[0]);

}

}

2.

下面的例子中

using System;

class A

{

public static int X;

static A(){

X=B.Y+1;

}

}

class B

{

public static int Y=A.X+1;

static B(){}

static void Main(){ //主函数为程序的入口

ine("X={0},Y={1}",A.X,B.Y);

}

}

产生的输出结果是什么? 答:x=1,y=2

3.

常用的调用web rvice方法有哪些?

答:访问WebService的三种方法,GET ,POST ,和基于SOAP协议的Web代理的调用

4.

大概描述一下ASP。NET页面的生命周期

阶段 说明

页请求发生在页生命周期开始之前。用户请求页时, 将确定是否需要分析和编译页(从而开始

页请求

页的生命周期),或者是否可以在不运行页的情况下发送页的缓存版本以进行响应。

在开始阶段,将设置页属性,如 Request 和 Respon。在此阶段,页还将确定请求是回发请求还是新

开始

请求,并设置 IsPostBack 属性。此外,在开始阶段期间,还将设置页的 UICulture 属性。

页初始

页初始化期间,可以使用页中的控件,并将设置每个控件的 UniqueID 属性。此外,任何主题都将应用

于页。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值。

加载 加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。

在验证期间,将调用所有验证程序控件的 Validate 方法,此方法将设置各个验证程序控件和页的 IsVal

验证

id 属性。

回发事

如果请求是回发请求,则将调用所有事件处理程序。

件处理

在呈现期间,视图状态将被保存到页,然后页将调用每个控件,以将其呈现的输出提供给页的 Respon

呈现

属性的 OutputStream。

完全呈现页、将页发送至客户端并准备丢弃时,将调用卸载。此时,将卸载页属性(如 Respon 和 R

卸载

equest)并执行清理。

5.

在下面的例子里

using System;

class A

{

public A(){

PrintFields();

}

public virtual void PrintFields(){}

}

class B:A

{

int x=1;

int y;

public B(){

y=-1;

}

public override void PrintFields(){

ine("x={0},y={1}",x,y);

}

}

当使用new B()创建B的实例时,产生什么输出?

答:x=1,y=0

6.

如何通过读取数据库中的图片?

// Assumes that connection is a valid SqlConnection object.

SqlCommand command = new SqlCommand("SELECT pub_id, logo FROM pub_info", connec

tion);

// Writes the BLOB to a file (*.bmp).

FileStream stream;

// Streams the BLOB to the FileStream object.

BinaryWriter writer;

// Size of the BLOB buffer.

int bufferSize = 100;

// The BLOB byte[] buffer to be filled by GetBytes.

byte[] outByte = new byte[bufferSize];

// The bytes returned from GetBytes.

long retval;

// The starting position in the BLOB output.

long startIndex = 0;

// The publisher id to u in the file name.

string pubID = "";

// Open the connection and read data into the DataReader.

();

SqlDataReader reader = eReader(tialAccess);

while (()){

// Get the publisher id, which must occur before getting the logo.

pubID = ing(0);

// Create a file to hold the output.

stream = new FileStream("logo" + pubID + ".bmp", Create,

ite);

writer = new BinaryWriter(stream);

// Ret the starting byte for the new BLOB.

startIndex = 0;

// Read bytes into outByte[] and retain the number of bytes returned.

retval = es(1, startIndex, outByte, 0, bufferSize);

// Continue while there are bytes beyond the size of the buffer.

while (retval == bufferSize) {

(outByte);

();

// Reposition start index to end of last buffer and fill buffer.

startIndex += bufferSize;

retval = es(1, startIndex, outByte, 0, bufferSize);

}

// Write the remaining buffer.

(outByte, 0, (int)retval - 1); ();

// Clo the output file.

(); ();

}// Clo the reader and the connection.

();

();

7.

请编程遍历页面上所有TextBox控件并给它赋值为?

protected void Page_Load(object nder, EventArgs e) {

foreach (Control ctl in ls[0].Controls) {

if (e().Name == "TextBox") {

TextBox tb = new TextBox();

tb = (TextBox)ntrol();

= "";

}

}

}

8.

Remoting简介

.NET Remoting(下文简称Remoting)是一种可用于开发分布式应用程序的技术。其主要的结构,分为:远程对象、

提供远程对象的远程服务器,以及可以访问何使用远程对象的客户端。这三个部分,可以分布于同一台计算机的同

一个进程,或者是不同的进程,也可以是处于网络上的不同的计算机。Remoting技术最大的特点,就是对远程通

信的过程进行了抽象和封装,使开发人员不必去处理底层通信的细节,而可以把重点放在对业务逻辑的处理上。而

且Remoting的通信协议也比较灵活,可以使用多个通信协议、不同的数据格式类型,以及不同类型的序列化机制。

在某些情况下,Remoting还允许你使用自定义的数据格式。

9.

重载与覆盖的区别

1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。

2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。

3、覆盖要求参数列表相同;重载要求参数列表不同。

4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时

的实参表与形参表来选择方法体的。

10.

大概描述一下ASP。NET服务器控件的生命周期

阶段

初始化

加载视图状态

处理回发数据

加载

控件需要执行的操作

初始化在传入 web 请求生命周期内所需的设置

在此阶段结束时,就会自动填充控件的 viewstate 属性

处理传入窗体数据,并相应地更新属性

执行所有请求共有的操作,如设置数据库查询。此时,树中的服务器控件已创建并初始化、

状态已还原并且窗体控件反映了客户端的数据

发送回发更改通知

处理回发事件

预呈现

引发更改事件以响应当前和以前回发之间的状态更改

处理引起回发的客户端事件,并在服务器上引发相应的事件

在呈现输出之前执行任何更新。可以保存在预呈现阶段对控件状态所做的更改,而在呈现

阶段所对的更改则会丢失

保存状态 在此阶段后,自动将控件的 viewstate 属性保持到字符串对象中。此字符串对象被发送到

客户端并作为隐藏变量发送回来

呈现

处置

生成呈现给客户端的输出

执行销毁控件前的所有最终清理操作。在此阶段必须释放对昂贵资源的引用,如数据库链

卸载 执行销毁控件前的所有最终清理操作

1.存储过程和函数的区别

基本上一样,一个显著的不同之处就是函数必须有返回值

2.事务是什么?

数据库事务是指作为一个逻辑工作单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原

子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务。事务处理可以确保除非事务性单元内的所有

操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败

的单元,可以简化错误恢复并使应用程序更加可靠。

3.游标的作用?如何知道游标已经到了最后?

游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于

0表示出错或到了最后。

4.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。

事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件

之前和新的字段值。语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。

。NET与ASP相比,主要有哪些进步?

和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语

言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。首先是面向对象的编

程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等. 封装性

使得代码逻辑清晰,易于管理,并且应用到上就可以使业务逻辑和Html页面分离,这样无论页面原型如何

改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对

象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

5.数据库的优化设计?

从范式优化、索引优化、表的优化及查询优化探讨数据库优化设计的方法,并对它们的综合使用进行分析.数据

库优化设计时,在逻辑设计阶段,要根据范式优化及表优化中的要求设计数据库逻辑结构,对两者的利弊进行权衡,选出

折衷的方案,既可以避免不一致性和数据异常现象,又不影响整体的性能;在数据库物理设计阶段,要根据索引优化中的

要求在有关属性或属性的组合上建立索引,以优化数据库物理结构;在数据库查询阶段,采用在条件子句中使用索引,嵌

套查询,迟早执行选择操作,迟早消除不满足条件的记录,分组计数和避免困难的正规表达式6种优化策略,可大大提高

查询效率。

程序员面试题

本文发布于:2024-03-29 06:02:22,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/1711663342301184.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:程序员面试题.doc

本文 PDF 下载地址:程序员面试题.pdf

下一篇:返回列表
标签:类型   应用程序   对象
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|