ASP.net开发工程师面试题集
1、 C#中prop erty与attribute的区别他们各有什么用处这种机制的好处在哪里pr op erty和attribute汉语都称之为属性。不过pr op erty是指类向外提供的数据区域。而attribute则是描述对象在编译时或运行时属性的。这两者是有本质区别的。
2.列举AS P.NET页面之间传递值的几种方式。
答. 1).使用QueryString,如.. ..?id=1; respons e.Redirec t().. ..
2).使用Session变量
3).使用S erver.Trans fer
3.一列数的规则如下: 1、 1、 2、 3、 5、 8、 13、 21、 34.. .. ..求第30位数是多少 用递归算法实现。
答 public class MainClass
{public static void Main()
{
Console.WriteLine(Foo(30));
}public static int Foo(int i)
{if(i<=0)return 0;else if(i>0&&i<=2)return 1;els e return Foo(i -1)+Foo(i -2);
}
}
4.C#中的委托是什么事件是不是一种委托
答
委托可以把一个方法作为参数代入另一个方法。
委托可以理解为指向一个函数的引用。
是是一种特殊的委托
5.override与重载的区别
答override与重载的区别。重载是方法的名称相同。参数或参数类型不同进行多次重载以适应不同的需要
Override是进行基类中函数的重写。为了适应需要。
6.如果在一个B/S结构的系统中需要传递变量值但是又不能使用Session、 Cookie、Application您有几种方法进行处理
答this.S erver.Trans fer
7.请编程遍历页面上所有TextBox控件并给它赋值为s tring.Empty
答foreach(System.Window s.Forms.Control c ontrol in this.Controls)
{if(c ontrol is System.Window s.Forms.TextBox)
{
System.Window s.Forms.TextBox tb=(System.Window s.Forms.TextBox)c ontrol ;tb.Text=Str in g.Emp ty;
}
}
8.请编程实现一个冒泡排序算法
答int [] array=new intint temp=0;for (int i=0; i<array.Length - 1 ; i++)
{for (int j= i+1 ; j <array.Length; j++)
{if(array[j]<array[i])
{temp=array[i] ;array[i]=array[j] ;array[j]=temp;
}
}
}
9.描述一下C#中索引器的实现过程是否只能根据数字进行索引
答不是。可以用任意类型。
10.求以下表达式的值写出您想到的一种或几种实现方法 1-2+3-4+……+m答int Num=th is.TextBox1.Text.ToString() ;int Sum=0;for (int i=0; i<Num+1 ; i++)
{if((i%2)==1)
{
Sum+=i ;
}e lse
{
Sum=Sum- I ;
}
}
System.Console.W riteLine(Su m.ToString());
System.Console.Read L ine() ;
12.在下面的例子里using System;class A
{publ ic A()
{
PrintField s();
}publ ic virtual void PrintFields(){}
}class B:A
{int x=1;int y;publ ic B()
{y=-1;
}publ ic override void PrintFields()
{
Console.WriteLine("x={0},y={1}",x,y);
}
当使用new B()创建B的实例时产生什么输出
答 X=1,Y=0;x=1y=-1
13.什么叫应用程序域
答应用程序域可以理解为一种轻量级进程。起到安全的作用。 占用资源小。
14.CTS、 C LS、 C LR分别作何解释
答 CTS通用语言系统。 CLS通用语言规范。 CLR公共语言运行库。
15.什么是装箱和拆箱
答从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。
16.什么是受管制的代码
答 unsafe非托管代码。不经过CLR运行。
17.什么是强类型系统
答 RTT I类型识别系统。
18.n et中读写数据库需要用到那些类他们的作用
答 DataSet:数据存储器。
DataCommand:执行语句命令。
DataAdapter:数据的集合用语填充。
21.在.n et中配件的意思是
答程序集。 中间语言源数据资源装配清单
22.常用的调用WebService的方法有哪些
答 1.使用W SD L.ex e命令行工具。
2.使用VS.NET中的Add Web Reference菜单选项
23. .net Remoting的工作原理是什么
答服务器端向客户端发送一个进程编号一个程序域编号 以确定对象的位置。
29.根据线程安全的相关知识分析以下代码 当调用t est方法时i>10时是否会引起死锁?并简要说明理由。publ ic void test(int i)
{lock(this)
{if(i>10)
{i--;t e st(i);
}
}
}
答不会发生死锁 但有一点int是按值传递的所以每次改变的都只是一个副本 因此不会出现死锁。但如果把int换做一个object那么死锁会发生
30.简要谈一下您对微软.N ET构架下rem otin g和webserv ice两项技术的理解以及实际中的应用。
答W S主要是可利用HTTP穿透防火墙。而Remoting可以利用TCP/IP二进制传送提
高效率。remoting是.net中用来跨越machine,process,appdomain进行方法调用的技术,对于三成结构的程序就可以使用remoting技术来构建它是分布应用的基础技术.相当于以前的DCOM Web Service是一种构建应用程序的普通模型并能在所有支持internet网通讯的操作系统上实施。Web Service令基于组件的开发和web的结合达到最佳基于组件的对象模型
31.公司要求开发一个继承System.W indows.Fo rms.ListView类的组件要求达到以下的特殊功能点击L istV i ew各列列头时能按照点击列的每行值进行重排视图中的所有行(排序的方式如DataGrid相似)。根据您的知识请简要谈一下您的思路
答根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListV i ew中。
32.给定以下XML文件完成算法流程图。
<F i leSy stem>
<DriverC>
<Dir DirName=”MSDOS622”>
<Fi le Fi leName=”Command.com”></Fi le>
</Dir>
<Fi le Fi leName=”MSDOS.SYS”></Fi le>
<Fi le Fi leName=” IO.SYS”></Fi le>
</DriverC>
</Fi leSystem>
请画出遍历所有文件名Fi leName的流程图(请使用递归算法)。
答void FindFi le(Directory d)
{
Fi leOrFo lders=d.GetFi leOrFo lders();foreach(Fi leOrFo lder fof in Fi leOrFo lders)
{if( fof is Fi le)
You Found a fi le;else if ( fof is D irectory)
Find Fi le( fof);
}
}
35.能用 foreach遍历访问的对象需要实现 IEn u merable______接口或声明____getEnu merator____________方法的类型。
答 IEnumerab le 、 GetEnumerator。
36.GC是什么?为什么要有GC?
答 GC是垃圾收集器。程序员不用担心内存管理 因为垃圾收集器会自动进行管理。要请求垃圾收集可以调用下面的方法之一
System.gc()
Runtime.getRuntime().gc()
37.String s=new String("xyz");创建了几个String Object?
答两个对象一个是“xyx”,一个是指向“xyx”的引用对像s。
38.abstract class和interface有什么区别?
答
声明方法的存在而不去实现它的类被叫做抽像类abstract class 它用于要创建一个体现某些基本行为的类并为该类声明方法但不能在该类中实现该类的情况。不能创建abstract类的实例。然而可以创建一个变量其类型是一个抽像类并让它指向具体子类的一个实例。不能有抽像构造函数或抽像静态方法。 Ab st r act类的子类为它们父类中的所有抽像方法提供实现否则它们也是抽像类为。取而代之在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口 interface是抽像类的变体。在接口中所有方法都是抽像的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽像的没有一个有程序体。接口只可以定义static fin a l成员变量。接口的实现与子类相似除了该实现类不能从接口定义中继承行为。当类实现特殊接口时它定义即将程序体给予所有这种接口的方法。然后它可以在实现了该接口的类的任何对像上调用接口的方法。由于有抽像类它允许使用接口名作为引用变量的类型。通常的动态联编将生效。 引用可以转换到接口类型或从接口类型转换instanceof运算符可以用来决定某对象的类是否实现了接口。
39.启动一个线程是用ru n()还是sta rt()?
答启动一个线程是调用sta rt()方法使线程所代表的虚拟处理机处于可运行状态这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。 run()方法可以产生必须退出的标志来停止一个线程。
40.接口是否可继承接口?抽像类是否可实现(implements)接口?抽像类是否可继承实体类(concrete class)?
答接口可以继承接口。抽像类可以实现(implements)接口抽像类是否可继承实体类但前提是实体类必须有明确的构造函数。
41.构造器Constructor是否可被override?
答构造器Constructor不能被继承因此不能重写Overriding但可以被重载Overloading。
42.是否可以继承String类?
答 String类是fina l类故不可以继承。
44.两个对像值相同(x.equals(y)==true)但却可有不同的hash code这句话对不对?答不对有相同的hash code。
45.swtic h是否能作用在byte上是否能作用在lo ng上是否能作用在String上?
答 sw itc h ex p r 1中 ex p r1是一个整型字符或字符串 因此可以作用在byte和lo n g上也可以作用在st rin g上。
47.当一个线程进入一个对象的一个sy nch ron ized方法后其它线程是否可进入此对象的其它方法?
不能一个对象的一个sy nc h ron ized方法只能由一个线程访问。
48.a bstract的m eth od是否可同时是static,是否可同时是n at iv e 是否可同时是sy nch ro n ized?
答都不能。
49.List,Set,Ma p是否继承自C o llect io n接口?
答 L ist S et是M a p不是
50.Set里的元素是不能重复的那么用什么方法来区分重复与否呢?是用==还是eq uals()?它们有何区别?
答 Set里的元素是不能重复的那么用iterator()方法来区分重复与否。 eq ua ls()是判读两个S et是否相等。eq uals()和==方法决定引用值是否指向同一对像eq ua ls()在类中被覆盖为的是当两个分离的对象的内容和类型相配的话返回真值。
51.数组有没有length()这个方法?String有没有length()这个方法
答数组和string都没有Length()方法只有Length属性。
52.sleep()和wa it()有什么区别?
答 sleep()方法是将当前线程挂起指定的时间。wa it()释放对象上的锁并阻塞当前线程直到它重新获取该锁。
53.short s1=1; s1=s1+1;有什么错?short s1=1; s1+=1;有什么错?
答 short s1=1; s1=s1+1;有错 s1是short型 s1+1是int型,不能显式转化为short型。可修改为s1=(short)(s1+1) 。 short s1=1; s1+=1正确。
54.谈谈final, final ly, final ize的区别。
答final修饰符关键字如果一个类被声明为final意味着它不能再派生出新的子类不能作为父类被继承。因此一个类不能既被声明为abstract的又被声明为fina l的。将变量或方法声明为final 可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值而在以后的引用中只能读取不可修改。被声明为final的方法也同样只能使用不能重载final ly再异常处理时提供final ly块来执行任何清除操作。如果抛出一个异常那么相匹配的catch子句就会执行然后控制就会进入final ly块如果有的话 。final ize方法名。 Java技术允许使用final ize()方法在垃圾收集器将对像从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的因此所有的类都继承了它。子类覆盖fina l ize()
方法以整理系统资源或者执行其他清理工作。 final ize()方法是在垃圾收集器删除对像之前对这个对象调用的。
55.如何处理几十万条并发数据
答用存储过程或事务。取得最大标识的时候同时更新. .注意主键不是自增量方式这种方法并发的时候是不会有重复主键的. .取得最大标识要有一个存储过程来获取.
56.Sessio n有什么重大BU G微软提出了什么方法加以解决
答是iis中由于有进程回收机制系统繁忙的话Session会丢失可以用Sate server或SQLServer数据库的方式存储Session不过这种方式比较慢而且无法捕获Session的END事件。
57.进程和线程的区别
答进程是系统进行资源分配和调度的单位线程是CPU调度和分派的单位一个进程可以有多个线程这些线程共享这个进程的资源。
58.堆和栈的区别
答栈是编译期间就分配好的内存空间因此你的代码中必须就栈的大小有明确的定义堆是程序运行期间动态分配的内存空间你可以根据程序的运行情况确定要分配的堆内存的大小
59.成员变量和成员函数前加st a t ic的作用
答它们被称为常成员变量和常成员函数又称为类成员变量和类成员函数。分别用来反映类的状态。 比如类成员变量可以用来统计类实例的数量类成员函数负责这种统计的动作。
60.AS P。 N ET与ASP相比主要有哪些进步
答 asp解释形 aspx编译型性能提高可以跟美工的工作分开进行更有利于团队开发。
61.产生一个int数组长度为100并向其中随机插入1-100并且不能重复。int[] intArr=new int[100];
Array List my List=n ew Array List();
Random rnd=new Random();whi le(myList.Count<100)
{int num=rnd.Next(1,101);if(!my List.Contains(nu m))myList.Add(num);
}for(int i=0; i<100;i++)intArr[i]=(int)my List[i];
62.请说明在.n et中常用的几种页面间传递参数的方法并说出他们的优缺点。
答 sess io n(v iewstate)简单但易丢失appl icat ion全局
c oo kie简单但可能不支持可能被伪造input ttype="hidden"简单可能被伪造url参数简单显示于地址栏长度有限
数据库稳定安全但性能相对弱
63.请指出GAC的含义
答全局程序集缓存。
64.向服务器发送请求有几种方式
答 g et,p o st。 g et一般为链接方式 p o st一般为按钮方式。
65.DataReader与Dataset有什么区别
答一个是只能向前的只读游标一个是内存中的表。
66.软件开发过程一般有几个阶段每个阶段的作用
答需求分析架构设计代码编写 QA部署
67.在c#中using和new这两个关键字有什么意义请写出你所知道的意义 using指令和语句n ew创建实例n ew隐藏基类中方法。
答 using引入名称空间或者使用非托管资源n ew新建实例或者隐藏父类方法
68.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.答 string inputStr="xx xx";inputStr=Regex.Replace(inputStr.Trim(),"*"," ");
69.下面这段代码输出什么为什么int i=5;int j=5;if(Object.ReferenceEq ua ls(i,j))
Console.WriteLine("Equal");e lse
Console.WriteLine("Not Equal");
答不相等 因为比较的是对像
70.什么叫做SQL注入如何防止请举例说明。
答利用sq l语言漏洞获得合法身份登陆系统。如身份验证的程序设计成
SqlCommand com=new SqlCommand("Select * from users whereusername='"+t_name.text+"'and pwd='"+t_pwd.text+"'");object obj=com.ExcuteScale();if(o bj!=n u l l)
{
//通过验证
[六一云迎国庆]转盘活动实物礼品美国G口/香港CTG/美国T级超防云/物理机/CDN大促销六一云 成立于2018年,归属于西安六一网络科技有限公司,是一家国内正规持有IDC ISP CDN IRCS电信经营许可证书的老牌商家。大陆持证公司受大陆各部门监管不好用支持退款退现,再也不怕被割韭菜了!主要业务有:国内高防云,美国高防云,美国cera大带宽,香港CTG,香港沙田CN2,海外站群服务,物理机,...
ucloud美国云服务器怎么样?ucloud是国内知名云计算品牌服务商家,目前推出全球多地机房的海外云服务器。UCloud主打的优势是海外多机房,目前正在进行的2021全球大促活动参与促销的云服务器机房就多达18个。UCloud新一代旗舰产品快杰云服务器已上线洛杉矶节点,覆盖北美和亚太地区,火热促销中, 首月低至7元,轻松体验具备优秀性能与极高性价比的快杰云服务器。点击进入:ucloud美国洛杉矶...
GigsGigsCloud商家在之前介绍的还是比较多的,因为之前我一直有几台机器在使用,只是最近几年网站都陆续转型删除掉不少的网站和闲置域名,包括今年也都减少网站开始转型自媒体方向。GigsGigsCloud 商家产品还是比较有特色的,有提供香港、新加坡等亚洲机房的云服务器、VPS和独立服务器等。第一、新春优惠活动优惠码:CNY2022-15OFF截止到正月初二,我们可以使用上述优惠码在购买指定G...