2015-01-16 .Net 中级软件工程师 笔试题

一 C#方面web

1.请简述多线程须要考虑的主要因素ajax

  答:1.线程管理sql

      同一核上的两个线程不会以两倍的时长完成,可能须要用两倍再加10 %左右的时间来完成。与一个线程相比较的话,三个线程在同一核上想占用100 %的CPU使用率可能会须要3.25——3.5倍的时长来完成。因此,要怎样分配正在运行的线程数量呢?有一个办法是在线程之间创建一个共享的旗语对象。在线程开始运行前,它会尝试调用旗语的WaitOne模式,并在完成后释放旗语。对CPU的核数量设置旗语限制,(使用EnvironmentProcessorCount功能限定);这将防止您的系统在同一时间运行的线程数多于核数量。与此同时,从线程池中拉出线程将确保您不会在同一时间建立过多线程。若是一次建立线程过多,即便他们并没运行,那也是浪费系统资源。数据库

 

    2.数据完整性浏览器

      要担忧的问题是竞争条件和死锁。多个线程试图在同一时间更新相同的对象就会形成竞争条件,这将招致麻烦。在.NET架构中,最简单也最多见的解决竞争条件的方法是使用“临界区”。多线程

      死锁的话,对编写的代码加以认真检查架构

2.抽象类和接口的区别数据库设计

  答:声明方法的存在而不去实现他的类就叫作抽象类,用于建立一下体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的状况。不能建立abstract类的实例,然而能够建立一个变量,类型是抽象类,并让它指向具体子类的实例。不能有抽象构造函数,和抽象静态方法。abstract子类为它们父类全部的抽象方法提供实现,不然它们也是抽象类。接口是抽象类的变体,在接口中,全部的方法都是抽象的。多继承性可经过这样的接口得到。接口没有程序体,只能够定义static final成员变量。接口的实现于子类类似,除了该实现类不能从接口定义中继承行为。ide

3.为何不提倡Cath()?必需要用的时候如何使用为好?函数

  答:只捕捉特定环境,特定条件下的异常,并进行处理。不能捕捉全部异常,由于有些异常是咱们所没法预料到的,好比,内存溢出或其余错误,这种状况下,不该该让系统以一种未知状态继续运行。不要使用try...catch进行流程处理。若是可能的话,尽可能要把循环写在try...catch内部,而不要把try...catch放到循环内部。

若是是try...catch中套着try...catch,异常处理机制是从内部的try...catch...往外部抛的,最早是在内部进行捕获、处理。

 

4.说明string str=null与string str=""在内存分配上的去吧

  答:string str=null不分配内存,string str=""分配字符串为空的内存

5.类(class)与结构(struct)的异同·

  答:类是引用类型,能够继承类、接口和被继承,有默认的构造函数,有析构函数,可使用abstract和sealed,有protected修饰符,必须使用new初始化。

  结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,能够建立,没有析构函数,不能够用abstract和sealed,没有protected修饰符,能够不用new初始化。

6.简述对emoting和webservice两项技术的理解以及实际中的应用

  答:WS主要是可利用HTTP,穿透防火墙。而Remoting能够利用TCP/IP,二进制传送提升效率。

 

7.简述private,protected,public,internal修饰符的访问权限

答 . private : 私有成员, 在类的内部才能够访问。
protected : 保护成员,该类内部和继承类中能够访问。
public : 公共成员,彻底公开,没有访问限制。
internal: 在同一命名空间内能够访问。

8.C#中的委托是什么?事件是否是一种委托?

答:委托能够把一个方法做为参数代入另外一个方法。

委托能够理解为指向一个函数的指针。

事件是一种特殊的委托

9.override与重载的区别

答:覆写(Override)的两个函数的函数特征相同
重载(Overload)的两个函数的函数名虽然相同,但函数特征不一样。

10.用.net的b/s结构的系统,您是用几层开发,每一层之间的关系以及为何要这样分层?

答:从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层 
数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问 
业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关 
表示层:是系统的UI部分,负责使用者与整个系统的交互。  
优势:  分工明确,条理清晰,易于调试,并且具备可扩展性。 
缺点:  增长成本。 

分层式结构究竟其优点何在? 
一、开发人员能够只关注整个结构中的其中某一层; 
二、能够很容易的用新的实现来替换原有层次的实现; 
三、能够下降层与层之间的依赖; 
四、有利于标准化; 
五、利于各层逻辑的复用。 

11..net中读写数据库须要用到的那些类?它们的做用?

答:DataSet数据存储器。

DataCommand执行语句命令。

DataAdapter数据的集合,用语填充。

12.简单用代码举例说明什么叫多态。

Class Person{
    
  Public void Eat()
   {
         Console.WriteLine("Person Eat Foot");
   }        
}

Class Teacher
{
  Public void Eat(
  {
        Console.WriteLine("Teacher Eat Mantou");
  }
}

Public Class Test{
    Public static void Main(string args[]){
Person a=new Teacher():
a.eat();
   
}

}
        

 

13.简单用代码举例说明什么叫继承。

Class Person{
    
 Public string Name;
 Public int      Age;
 
 Public Person(string Name,int Age)
 {
     this.Name=Name;
     this.Age=Age;
     Console.WriteLine(Name);
     Console.WriteLine(Age);

 }    
}

Class Teacher:Person
{
  private int _id;
  Public Teacher(string Name,int Age,int _id)
        :base(Name,Age)
  {
       this._id=_id;
       Console.WriteLine(_id):
  }
}

Public Class Test{
    Public static void Main(string args[]){
        Teacher Tom=new Teacher("Tom",22,01)
   
}

}

  

 

 

 

二 SQLSERVER方面

1.内容重复性高的字段上创建索引,查询效率会降低仍是提升?为何?

答:降低,索引就是为了从大量数据中提取须要的少许数据,推断到极端条件下,假设字段值都是同样的,索引是没有意义的

2.自定义函数和存储过程的区别是什么,什么状况下只能用自定义函数,什么状况下只能用存储过程?

答:自定义函数:1. 能够返回表变量2. 限制颇多,包括不能使用output参数;不能用临时表;函数内部的操做不能影响到外部环境;不能经过select返回结果集;不能update,delete,数据库表;3. 必须return 一个标量值或表变量,自定义函数通常用在复用度高,功能简单单一,争对性强的地方。

存储过程:1. 不能返回表变量2. 限制少,能够执行对数据库表的操做,能够返回数据集3. 能够return一个标量值,也能够省略return,存储过程通常用在实现复杂的功能,数据操纵方面。

3.简述分区表

答:将大表的数据分红称为分区的许多小的子集。分区表在逻辑上是一个表,而物理上是多个表

4.分别说明什么应用环境下如何使用游标,事务,锁,索引,以及聚簇索引和非聚簇索引的区别

答: 

 

5.举例说明左链接和内链接的区别

答:区别在于左链接比内链接多出左表不符合条件的数据

 

6.比较说明数据库设计的第一范式,第二范式,第三范式的优缺点

答:

  • 第一范式:1NF是对属性的原子性约束,要求属性具备原子性,不可再分解; 通俗的理解是字段还能够再分吗?如过不能,则是符合1NF的设计。
  • 第二范式:2NF是对记录的唯一性约束,要求记录有唯一标识,即实体的唯一性; 简单的解释,好比你和一个女生约会创建一张表,不用每条约会记录都记录她的身高、体重,将身高体重单独的存在一张表中供查询便可。
  • 第三范式:3NF是对字段冗余性的约束,即任何字段不能由其余字段派生出来

 

7.写出一条sql语句:取出A表中的第x到第xx记录(sqlserver以自动增加的id做为主键,注意,id可能为不连续的)

 

三 WEB方面

1.简述HttpModule和HttpHandler?

 

2.请描述一下ASP.NET页面生命周期?

 

 

3.简述列举你知道的Web优化措施?

4.简述Http请求的过程(从用户在浏览器输入网址到看到最终页面所经历的的过程,描述中必须包含IIS及ASP.NET引擎部分)

5.Javascipt中拼接大量字符串,考虑一个高效的办法

6.AJAX问题

1)为何使用以下三种方式建立对象?并简述对XMLHttpRequest的理解

var Ajax=function(){
return Try.these{
    funtion(){return  new XMLHttpRequest()};
    funtion(){return  new ActiveObject('Msxml2.XMLHTTP')};
    funtion(){return  new XMLHttpRequest('Microsoft.XMLHTTP')};
}||false;
};

2)补充以下代码

ajax=new Ajax;

     var url="/MoreCondition.aspx?category="+type+"";

  ajax.onreadystatechange=(______________);

  ajax.open(___________________);

  _________________________;

 

3)做为Ajax的回调函数,以下函数有什么问题?

  funtion callback()

{

  document.all('JobInfo').value=ajax.responseText;

}
相关文章
相关标签/搜索