《程序员面试宝典3421384462(2021整理)》由会员分享,可在线阅读,更多相关《程序员面试宝典3421384462(2021整理)(37页珍藏版)》请在金锄头文库上搜索。
1、本文为网上收集整理,如需要该文档得朋友,欢迎下载使用2021-12-10 09:352021-12-10 09:351.1. 简述简述 private private、 protected protected、 public public、 internal internal 修饰符的访修饰符的访问权限。问权限。答答 . private : . private : 私有成员私有成员, , 在类的内部才可以访问。在类的内部才可以访问。protected :protected : 保护成员,该类内部和继承类中可以访问。保护成员,该类内部和继承类中可以访问。public :public : 公共成员
2、,完全公开,没有访问限制。公共成员,完全公开,没有访问限制。internal:internal: 在同一命名空间内可以访问。在同一命名空间内可以访问。2 .2 .列举列举 ASP.NETASP.NET 页面之间传递值的几种方式。页面之间传递值的几种方式。答答. . 1.1.使用使用 QueryString,QueryString, 如如.?id=1;.?id=1; response.response. Redirect().Redirect().2.2.使用使用 SessionSession 变量变量3.3.使用使用 Server.TransferServer.Transfer3.3. 一列数
3、的规那么如下一列数的规那么如下: : 1 1、1 1、2 2、3 3、5 5、8 8、1313、2121、34.34. 求求第第 3030 位数是多少,位数是多少, 用递归算法实现。用递归算法实现。答:答:public class MainClasspublic class MainClass public static void Main()public static void Main() Console.WriteLine(Foo(30);Console.WriteLine(Foo(30); public static int Foo(int i)public static int Fo
4、o(int i)精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用 if (i = 0)if (i 0 & i 0 & i = 2)return 1;return 1;else return Foo(i -1) + Foo(i - 2);else return Foo(i -1) + Foo(i - 2); 4.C#4.C#中的委托是什么?事件是不是一种委托?中的委托是什么?事件是不是一种委托?答答 :委托可以把一个方法作为参数代入另一个方法。委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向一个函数的引用。委托可以理解为指向一个函数的引用。是,是一种特殊的
5、委托是,是一种特殊的委托5.override5.override 与重载的区别与重载的区别答答 :overrideoverride 与重载的区别。重载是方法的名称相同。参数或参数类型与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行屡次重载以适应不同的需要不同,进行屡次重载以适应不同的需要OverrideOverride 是进行基类中函数的重写。为了适应需要。是进行基类中函数的重写。为了适应需要。6.6.如果在一个如果在一个 B/SB/S 结构的系统中需要传递变量值,但是又不能使用结构的系统中需要传递变量值,但是又不能使用精品文档,word 文档本文为网上收集整理,如需要该文档得朋友
6、,欢迎下载使用SessionSession、CookieCookie、ApplicationApplication,您有几种方法进行处理?,您有几种方法进行处理?答答 :this.Server.Transferthis.Server.Transfer7.7.请编程遍历页面上所有请编程遍历页面上所有 TextBoxTextBox 控件并给它赋值为控件并给它赋值为string.Emptystring.Empty?答:答:foreach (System.Windows.Forms.Control control inforeach (System.Windows.Forms.Control cont
7、rol inthis.Controls)this.Controls) if (control is System.Windows.Forms.TextBox)if (control is System.Windows.Forms.TextBox) System.Windows.Forms.TextBox tb =System.Windows.Forms.TextBox tb =(System.Windows.Forms.TextBox)control ;(System.Windows.Forms.TextBox)control ;tb.Text = String.Empty ;tb.Text
8、= String.Empty ; 8.8.请编程实现一个冒泡排序算法?请编程实现一个冒泡排序算法?答:答:int array = new intint array = new int; ;精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用int temp = 0 ;int temp = 0 ;for (int i = 0 ; i array.Length - 1 ; i+)for (int i = 0 ; i array.Length - 1 ; i+) for (int j = i + 1 ; j array.Length ; j+)for (int j = i +
9、 1 ; j array.Length ; j+) if (arrayj arrayi)if (arrayj arrayi) temp = arrayi ;temp = arrayi ;arrayi = arrayj ;arrayi = arrayj ;arrayj = temp ;arrayj = temp ; 9.9.描述一下描述一下 C#C#中索引器的实现过程,是否只能根据数字进行索引?中索引器的实现过程,是否只能根据数字进行索引?答:不是。可以用任意类型。答:不是。可以用任意类型。10.10.求以下表达式的值,写出您想到的一种或几种实现方法:求以下表达式的值,写出您想到的一种或几种实现
10、方法:1-2+3-1-2+3-4+m4+m答:答:int Num = this.TextBox1.Text.ToString() ;int Num = this.TextBox1.Text.ToString() ;int Sum = 0 ;int Sum = 0 ;精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用for (int i = 0 ; i Num + 1 ; i+)for (int i = 0 ; i 10i10 时是否会引起死锁时是否会引起死锁? ?并简要说明理由。并简要说明理由。public void test(int i)public void te
11、st(int i) lock(this)lock(this) if (i10)if (i10) i-;i-;test(i);test(i); 答:不会发生死锁,答:不会发生死锁, 但有一点但有一点 intint 是按值传递的,所以每次改变的是按值传递的,所以每次改变的都只是一个副本,都只是一个副本, 因此不会出现死锁。因此不会出现死锁。 但如果把但如果把intint换做一个换做一个objectobject,那么死锁会发生那么死锁会发生精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用30.30.简要谈一下您对微软简要谈一下您对微软.NET.NET 构架下构架下remo
12、tingremoting和和webservicewebservice两项技两项技术的理解以及实际中的应用。术的理解以及实际中的应用。答:答: WSWS主要是可利用主要是可利用, 穿透防火墙。穿透防火墙。 而而RemotingRemoting可以利用可以利用TCP/IPTCP/IP,二进制传送提高效率。二进制传送提高效率。31.31.公司要求开发一个继承公司要求开发一个继承 System.Windows.Forms.ListViewSystem.Windows.Forms.ListView 类的组类的组件,要求到达以下的特殊功能:点击件,要求到达以下的特殊功能:点击 ListViewListVi
13、ew 各列列头时,能按照各列列头时,能按照点击列的每行值进行重排视图中的所有行点击列的每行值进行重排视图中的所有行 ( (排序的方式如排序的方式如 DataGridDataGrid相似相似) )。根据您的知识,请简要谈一下您的思路。根据您的知识,请简要谈一下您的思路答:根据点击的列头答:根据点击的列头, ,包该列的包该列的 IDID 取出取出, ,按照该按照该 IDID 排序后排序后, ,在给绑定在给绑定到到 ListViewListView 中。中。32.32.给定以下给定以下 XMLXML 文件,完成算法流程图。文件,完成算法流程图。Dir DirName= File FileName =
14、 File FileName = File FileName = 精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用请画出遍历所有文件名请画出遍历所有文件名FileNameFileName的流程图的流程图( (请使用递归算法请使用递归算法) )。答:答:void FindFile( Directory d )void FindFile( Directory d ) FileOrFolders = d.GetFileOrFolders();FileOrFolders = d.GetFileOrFolders();foreach( FileOrFolder fof in
15、FileOrFolders )foreach( FileOrFolder fof in FileOrFolders ) if( fof is File )if( fof is File )You Found a file;You Found a file;else if ( fof is Directory )else if ( fof is Directory )FindFile( fof );FindFile( fof ); 33.33.写出一条写出一条 SqlSql 语句:取出表语句:取出表 A A 中第中第 3131 到第到第 4040 记录记录SQLServer,SQLServer,
16、以自动增长的以自动增长的 IDID 作为主键作为主键, ,注意:注意:IDID 可能不是连续的。可能不是连续的。答:解答:解 1: select top 10 * from A where id not in (select top1: select top 10 * from A where id not in (select top30 id from A)30 id from A)解解 2: select top 10 * from A where id (select max(id) from2: select top 10 * from A where id (select max(
17、id) from(select top 30 id from A )as A)(select top 30 id from A )as A)精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用34.34.面向对象的语言具有面向对象的语言具有_性、性、_性、性、_性性答:封装、继承、多态。答:封装、继承、多态。35.35.能用能用 foreachforeach 遍历访问的对象需要实现遍历访问的对象需要实现 _ _接口接口或声明或声明_方法的类型。方法的类型。答:答:IEnumerableIEnumerable 、 GetEnumerator GetEnumerator。3
18、6.GC36.GC 是什么是什么? ? 为什么要有为什么要有 GC?GC?答:答:GCGC 是垃圾收集器。程序员不用担忧内存管理,因为垃圾收集器是垃圾收集器。程序员不用担忧内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System.gc()System.gc()Runtime.getRuntime().gc()Runtime.getRuntime().gc()37.String s = new String(xyz);37.String s = new String(xyz);创立了几个创立了几个 Str
19、ing Object?String Object?答:两个对象,一个是“xyx答:两个对象,一个是“xyx, ,一个是指向“xyx的引用对象一个是指向“xyx的引用对象 s s。38.abstract class38.abstract class 和和 interfaceinterface 有什么区别有什么区别? ?答:答:声明方法的存在而不去实现它的类被叫做抽象类声明方法的存在而不去实现它的类被叫做抽象类 abstractabstract classclass ,它用于要创立一个表达某些根本行为的类,它用于要创立一个表达某些根本行为的类, 并为该类声明方法,并为该类声明方法, 但不但不能在该
20、类中实现该类的情况。不能创立能在该类中实现该类的情况。不能创立abstractabstract 类的实例。然而可类的实例。然而可以创立一个变量,以创立一个变量, 其类型是一个抽象类,其类型是一个抽象类, 并让它指向具体子类的一个并让它指向具体子类的一个精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用实例。不能有抽象构造函数或抽象静态方法。实例。不能有抽象构造函数或抽象静态方法。AbstractAbstract 类的子类为类的子类为它们父类中的所有抽象方法提供实现,它们父类中的所有抽象方法提供实现, 否那么它们也是抽象类为。否那么它们也是抽象类为。 取取而代之,而代之
21、, 在子类中实现该方法。在子类中实现该方法。 知道其行为的其它类可以在类中实现知道其行为的其它类可以在类中实现这些方法。这些方法。接口接口interfaceinterface是抽象类的变体。在接口中,所有方法都是抽象是抽象类的变体。在接口中,所有方法都是抽象的。的。 多继承性可通过实现这样的接口而获得。多继承性可通过实现这样的接口而获得。 接口中的所有方法都是接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义抽象的,没有一个有程序体。接口只可以定义 static finalstatic final 成员变成员变量。量。 接口的实现与子类相似,接口的实现与子类相似, 除了该实现类不能从
22、接口定义中继承行除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义即将程序体给予所有这种接口为。当类实现特殊接口时,它定义即将程序体给予所有这种接口的方法。的方法。 然后,然后, 它可以在实现了该接口的类的任何对象上调用接口的它可以在实现了该接口的类的任何对象上调用接口的方法。方法。由于有抽象类,由于有抽象类,它允许使用接口名作为引用变量的类型。它允许使用接口名作为引用变量的类型。通常通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceofinstanceof 运算符可以用来决定某对象的类是否实现
23、了接口。运算符可以用来决定某对象的类是否实现了接口。39.39.启动一个线程是用启动一个线程是用 run()run()还是还是 start()?start()?答:启动一个线程是调用答:启动一个线程是调用start()start()方法,使线程所代表的虚拟处理机方法,使线程所代表的虚拟处理机处于可运行状态,处于可运行状态, 这意味着它可以由这意味着它可以由 JVMJVM 调度并执行。调度并执行。 这并不意味着这并不意味着线程就会立即运行。线程就会立即运行。run()run()方法可以产生必须退出的标志来停止一个方法可以产生必须退出的标志来停止一个线程。线程。40.40.接口是否可继承接口接口是
24、否可继承接口? ? 抽象类是否可实现抽象类是否可实现(implements)(implements)接口接口? ? 抽抽象类是否可继承实体类象类是否可继承实体类(concrete class)?(concrete class)?精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用答:答:接口可以继承接口。接口可以继承接口。抽象类可以实现抽象类可以实现(implements)(implements)接口,接口,抽象类抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。是否可继承实体类,但前提是实体类必须有明确的构造函数。41.41.构造器构造器 Construct
25、orConstructor 是否可被是否可被 override?override?答:构造器答:构造器 ConstructorConstructor 不能被继承,因此不能重写不能被继承,因此不能重写 OverridingOverriding,但可以被重载但可以被重载 OverloadingOverloading。42.42.是否可以继承是否可以继承 StringString 类类? ?答:答:StringString 类是类是 finalfinal 类故不可以继承。类故不可以继承。43.try43.try 里有一个里有一个 returnreturn 语句,那么紧跟在这个语句,那么紧跟在这个 t
26、rytry 后的后的 finallyfinally里的里的 codecode 会不会被执行,什么时候被执行,在会不会被执行,什么时候被执行,在 returnreturn 前还是后前还是后? ?答:会执行,在答:会执行,在 returnreturn 前执行。前执行。44.44.两个对象值相同两个对象值相同(x.equals(y) = true)(x.equals(y) = true),但却可有不同的,但却可有不同的 hashhashcodecode,这句话对不对,这句话对不对? ?答:不对,有相同的答:不对,有相同的 hash codehash code。45.swtich45.swtich 是
27、否能作用在是否能作用在 bytebyte 上,是否能作用在上,是否能作用在longlong 上,是否能作上,是否能作用在用在 StringString 上上? ?答:答: switchswitch expr1expr1 中,中, expr1expr1 是一个整数表达式。是一个整数表达式。 因此传递给因此传递给 switch switch和和 case case 语句的参数应该是语句的参数应该是 int int、 short short、 char char 或者或者 byte byte。精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用long,stringlong,
28、string 都不能作用于都不能作用于 swtichswtich。47.47.当一个线程进入一个对象的一个当一个线程进入一个对象的一个 synchronizedsynchronized 方法后,方法后, 其它线程其它线程是否可进入此对象的其它方法是否可进入此对象的其它方法? ?不能,一个对象的一个不能,一个对象的一个 synchronizedsynchronized 方法只能由一个线程访问。方法只能由一个线程访问。48.abstract48.abstract 的的methodmethod 是否可同时是是否可同时是 static,static,是否可同时是是否可同时是nativenative,是
29、否可同时是是否可同时是 synchronized?synchronized?答:都不能。答:都不能。49.List, Set, Map49.List, Set, Map 是否继承自是否继承自 CollectionCollection 接口接口? ?答:答:ListList,SetSet 是是 MapMap 不是不是50.Set50.Set 里的元素是不能重复的,里的元素是不能重复的, 那么用什么方法来区分重复与否呢那么用什么方法来区分重复与否呢? ?是用是用=还是还是 equals()?equals()? 它们有何区别它们有何区别? ?答:答: SetSet 里的元素是不能重复的,里的元素是不
30、能重复的, 那么用那么用 iterator()iterator()方法来区分重复方法来区分重复与否。与否。equals()equals()是判读两个是判读两个 SetSet 是否相等。是否相等。equals()equals()和和=方法决定引用值是否指向同一对象方法决定引用值是否指向同一对象 equals()equals()在类中被在类中被覆盖,为的是当两个别离的对象的内容和类型相配的话,返回真值。覆盖,为的是当两个别离的对象的内容和类型相配的话,返回真值。51.51.数组有没有数组有没有 length()length()这个方法这个方法? String? String 有没有有没有 leng
31、th()length()这个方这个方法?法?精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用答:数组没有答:数组没有 length()length()这个方法,有这个方法,有 lengthlength 的属性。的属性。StringString 有有有有length()length()这个方法。这个方法。52.sleep()52.sleep() 和和 wait() wait() 有什么区别有什么区别? ?答:答:sleep()sleep()方法是使线程停止一段时间的方法。在方法是使线程停止一段时间的方法。在sleepsleep 时间间隔时间间隔期满后,期满后,线程不一
32、定立即恢复执行。线程不一定立即恢复执行。这是因为在那个时刻,这是因为在那个时刻,其它线程其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来的线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来的线程具有更高的优先级具有更高的优先级(b)(b)正在运行的线程因为其它原因而阻塞。正在运行的线程因为其它原因而阻塞。wait()wait()是线程交互时,如果线程对一个同步对象是线程交互时,如果线程对一个同步对象 x x 发出一个发出一个 wait()wait()调用,调用,该线程会暂停执行,该线程会暂停执行,被调对象进入等待状态,被调对象进入等待状态,直到被唤醒或等直到被唤醒或等待时
33、间到。待时间到。53.short s1 = 1; s1 = s1 + 1;53.short s1 = 1; s1 = s1 + 1; 有什么错有什么错? short s1 = 1; s1 += 1;? short s1 = 1; s1 += 1;有什么错有什么错? ?答:答:short s1 = 1; s1 = s1 + 1;short s1 = 1; s1 = s1 + 1; 有错,有错,s1s1 是是 shortshort 型,型,s1+1s1+1 是是 intint型型, ,不能显式转化为不能显式转化为 shortshort 型。型。 可修改为可修改为 s1s1 =(short)(s1=
34、(short)(s1 + + 1)1) 。 shortshorts1 = 1; s1 += 1s1 = 1; s1 += 1 正确。正确。54.54.谈谈谈谈 final, finally, finalizefinal, finally, finalize 的区别。的区别。答:答:finalfinal修饰符关键字如果一个类被声明为修饰符关键字如果一个类被声明为 finalfinal,意味着它不,意味着它不精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用能再派生出新的子类,不能作为父类被继承。因此能再派生出新的子类,不能作为父类被继承。因此 一个类不能既被一个类不能既
35、被声明为声明为 abstract abstract 的,又被声明为的,又被声明为 finalfinal 的。将变量或方法声明为的。将变量或方法声明为finalfinal, 可以保证它们在使用中可以保证它们在使用中 不被改变。不被改变。 被声明为被声明为 finalfinal 的变量必的变量必须在声明时给定初值,须在声明时给定初值,而在以后的引用中只能读取,而在以后的引用中只能读取,不可修改。不可修改。被声被声明为明为 final final 的方法也同样只能使用,不能重载的方法也同样只能使用,不能重载finallyfinally再异常处理时提供再异常处理时提供 finally finally
36、块来执行任何去除操作。块来执行任何去除操作。 如果如果抛出一个异常,抛出一个异常, 那么相匹配的那么相匹配的 catch catch 子句就会子句就会 执行,执行, 然后控制就会然后控制就会进入进入 finally finally 块如果有的话。块如果有的话。finalizefinalize方法名。方法名。JavaJava 技术允许使用技术允许使用 finalize() finalize() 方法在垃圾收方法在垃圾收集器将对象从内存中去除出去之前做必要的清理集器将对象从内存中去除出去之前做必要的清理 工作。这个方法是工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。由垃圾
37、收集器在确定这个对象没有被引用时对这个对象调用的。 它是它是在在 Object Object 类中定义的类中定义的 ,因此所有的类都继承了它。子类覆盖,因此所有的类都继承了它。子类覆盖finalize()finalize() 方法以整理系统资源或者执行其他清理工作。方法以整理系统资源或者执行其他清理工作。finalize()finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。方法是在垃圾收集器删除对象之前对这个对象调用的。55.55.如何处理几十万条并发数据?如何处理几十万条并发数据?答:答: 用存储过程或事务。用存储过程或事务。 取得最大标识的时候同时更新取得最大标识的时候
38、同时更新.注意主键不注意主键不是自增量方式这种方法并发的时候是不会有重复主键的是自增量方式这种方法并发的时候是不会有重复主键的.取得最大取得最大标识要有一个存储过程来获取标识要有一个存储过程来获取. .56.Session56.Session 有什么重大有什么重大 BUGBUG,微软提出了什么方法加以解决?,微软提出了什么方法加以解决?答:是答:是 iisiis 中由于有进程回收机制,系统繁忙的话中由于有进程回收机制,系统繁忙的话 SessionSession 会丧失,会丧失,精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用可以用可以用 Sate serverSat
39、e server 或或 SQL ServerSQL Server 数据库的方式存储数据库的方式存储 SessionSession 不过不过这种方式比拟慢,而且无法捕获这种方式比拟慢,而且无法捕获 SessionSession 的的 ENDEND 事件。事件。57.57.进程和线程的区别?进程和线程的区别?答:答: 进程是系统进行资源分配和调度的单位;进程是系统进行资源分配和调度的单位; 线程是线程是 CPUCPU 调度和分派调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。58.58.堆和栈的区别?堆和栈的区别?答
40、:答:栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。堆:堆:一般由程序员分配释放。一般由程序员分配释放。用用 newnew、mallocmalloc 等分配内存函数分配得等分配内存函数分配得到的就是在堆上。到的就是在堆上。59.59.成员变量和成员函数前加成员变量和成员函数前加 staticstatic 的作用?的作用?答:答: 它们被称为常成员变量和常成员函数,它们被称为常成员变量和常成员函数, 又称为类成员变量和类成又称为类成员变量和类成员函数。员函数。 分别用来反映类的状态。分别用来反映类的状态。 比方类成员变量可
41、以用来统计类实比方类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。例的数量,类成员函数负责这种统计的动作。60.ASP60.ASP。NETNET 与与 ASPASP 相比,主要有哪些进步?相比,主要有哪些进步?答:答:aspasp 解释形,解释形,aspxaspx 编译型,性能提高,有利于保护源码。编译型,性能提高,有利于保护源码。61.61.产生一个产生一个 intint 数组,数组,长度为长度为 100100,并向其中随机插入并向其中随机插入 1-1001-100,并且并且精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用不能重复。不能重复。in
42、t intArr=new int100;int intArr=new int100;ArrayList myList=new ArrayList();ArrayList myList=new ArrayList();Random rnd=new Random();Random rnd=new Random();while(myList.Count100)while(myList.Count100) int num=rnd.Next(1,101);int num=rnd.Next(1,101);if(!myList.Contains(num)if(!myList.Contains(num)myL
43、ist.Add(num);myList.Add(num); for(int i=0;i100;i+)for(int i=0;i100;i+)intArri=(int)myListi;intArri=(int)myListi;62.62.请说明在请说明在 中常用的几种页面间传递参数的方法,中常用的几种页面间传递参数的方法,并说出他们并说出他们的优缺点。的优缺点。答:答:session(viewstate)session(viewstate) 简单,但易丧失简单,但易丧失applicationapplication 全局全局cookiecookie 简单,但可能不支持,可能被伪造简单,但可能不支持
44、,可能被伪造input ttype=hiddeninput ttype=hidden 简单,可能被伪造简单,可能被伪造urlurl 参数参数 简单,显示于地址栏,长度有限简单,显示于地址栏,长度有限数据库数据库 稳定,平安效劳器发送请求有几种方式?稳定,平安效劳器发送请求有几种方式?答:答:get,postget,post。getget 一般为链接方式,一般为链接方式,postpost 一般为按钮方式。一般为按钮方式。精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用65.DataReader65.DataReader 与与 DatasetDataset 有什么区别?
45、有什么区别?答:一个是只能向前的只读游标,一个是内存中的表。答:一个是只能向前的只读游标,一个是内存中的表。66.66.软件开发过程一般有几个阶段?每个阶段的作用?软件开发过程一般有几个阶段?每个阶段的作用?答:需求分析,架构设计,代码编写,答:需求分析,架构设计,代码编写,QAQA,部署,部署67.67.在在 c#c#中中 usingusing 和和 newnew 这两个关键字有什么意义,这两个关键字有什么意义, 请写出你所知道请写出你所知道的意义?的意义?usingusing 指令指令 和语句和语句 new new 创立实例创立实例 new new 隐藏基类中方法。隐藏基类中方法。答:答:
46、usingusing 引入名称空间或者使用非托管资源引入名称空间或者使用非托管资源newnew 新建实例或者隐藏父类方法新建实例或者隐藏父类方法68.68.需要实现对一个字符串的处理需要实现对一个字符串的处理, ,首先将该字符串首尾的空格去掉首先将该字符串首尾的空格去掉, ,如果字符串中间还有连续空格的话如果字符串中间还有连续空格的话, ,仅保存一个空格仅保存一个空格, ,即允许字符串即允许字符串中间有多个空格中间有多个空格, ,但连续的空格数不可超过一个但连续的空格数不可超过一个. .答:答:string inputStr= xx xx ;string inputStr= xx xx ;in
47、putStr=Regex.Replace(inputStr.Trim(), *, );inputStr=Regex.Replace(inputStr.Trim(), *, );69.69.下面这段代码输出什么?为什么?下面这段代码输出什么?为什么?int i=5;int i=5;int j=5;int j=5;if (Object.ReferenceEquals(i,j)if (Object.ReferenceEquals(i,j)精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用Console.WriteLine(Equal);Console.WriteLine(E
48、qual);elseelseConsole.WriteLine(Not Equal);Console.WriteLine(Not Equal);答:不相等,因为比拟的是对象答:不相等,因为比拟的是对象70.70.什么叫做什么叫做 SQLSQL 注入,如何防止?请举例说明。注入,如何防止?请举例说明。答:利用答:利用 sqlsql 关键字对网站进行攻击。过滤关键字关键字对网站进行攻击。过滤关键字 等等71.71.什么是反射?什么是反射?答:动态获取程序集信息答:动态获取程序集信息72.72.用用 SingletonSingleton 如何写设计模式如何写设计模式答:答:staticstatic
49、属性里面属性里面 new ,new ,构造函数构造函数 privateprivate73.73.什么是什么是 Application PoolApplication Pool?答:答:WebWeb 应用,类似应用,类似 Thread PoolThread Pool,提高并发性能。,提高并发性能。74.74.什么是虚函数?什么是抽象函数?什么是虚函数?什么是抽象函数?答:虚函数:没有实现的,可由子类继承并重写的函数。抽象函数:答:虚函数:没有实现的,可由子类继承并重写的函数。抽象函数:规定其非虚子类必须实现的函数,必须被重写。规定其非虚子类必须实现的函数,必须被重写。75.75.什么是什么是 X
50、MLXML?精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用答:答:XMLXML 即可扩展标记语言。即可扩展标记语言。eXtensible Markup Language.eXtensible Markup Language.标记是标记是指计算机所能理解的信息符号,指计算机所能理解的信息符号, 通过此种标记,通过此种标记, 计算机之间可以处理计算机之间可以处理包含各种信息的文章等。包含各种信息的文章等。 如何定义这些标记,如何定义这些标记, 即可以选择国际通用的即可以选择国际通用的标记语言,比方标记语言,比方 HTMLHTML,也可以使用象,也可以使用象 XMLXM
51、L 这样由相关人士自由决定这样由相关人士自由决定的标记语言,这就是语言的可扩展性。的标记语言,这就是语言的可扩展性。XMLXML 是从是从 SGMLSGML 中简化修改出中简化修改出来的。它主要用到的有来的。它主要用到的有 XMLXML、XSLXSL 和和 XPathXPath 等。等。76.76.什么是什么是 Web ServiceWeb Service?UDDIUDDI?答:答:WebWeb ServiceService 便是基于网络的、分布式的模块化组件,它执行特便是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术标准,这些标准使得定的任务,遵守具体的技术标准,这些标准使
52、得WebWeb ServiceService 能与其能与其他兼容的组件进行互操作。他兼容的组件进行互操作。UDDIUDDI 的目的是为电子商务建立标准;的目的是为电子商务建立标准;UDDIUDDI 是一套基于是一套基于 WebWeb 的、分布的、分布式的、为式的、为WebWeb ServiceService 提供的、信息注册中心的实现标准标准,同时提供的、信息注册中心的实现标准标准,同时也包含一组使企业能将自身提供的也包含一组使企业能将自身提供的 WebWeb ServiceService 注册,注册, 以使别的企业以使别的企业能够发现的访问协议的实现标准。能够发现的访问协议的实现标准。77.
53、77.什么是什么是 ASP.netASP.net 中的用户控件?中的用户控件?答:用户控件一般用在内容多为静态答:用户控件一般用在内容多为静态, ,或者少许会改变的情况下或者少许会改变的情况下.用用的比拟大的比拟大.类似类似 ASPASP 中的中的 include.include.但是功能要强大的多。但是功能要强大的多。78.78.列举一下你所了解的列举一下你所了解的 XMLXML 技术及其应用技术及其应用答:答:xmlxml 用于配置用于配置, ,用于保存静态数据类型用于保存静态数据类型. .接触接触 XMLXML 最多的是最多的是 webweb精品文档,word 文档本文为网上收集整理,如
54、需要该文档得朋友,欢迎下载使用Services.Services.和和 configconfig79.ADO.net79.ADO.net 中常用的对象有哪些?分别描述一下。中常用的对象有哪些?分别描述一下。答:答:ConnectionConnection 数据库连接对象数据库连接对象CommandCommand 数据库命令数据库命令DataReaderDataReader 数据读取器数据读取器DataSetDataSet 数据集数据集80.80.什么是什么是 code-Behindcode-Behind 技术。技术。答:答: ASPX,RESXASPX,RESX和和CSCS三个后缀的文件,三个
55、后缀的文件, 这个就是代码别离这个就是代码别离. .实现了实现了HTMLHTML代码和效劳器代码别离根本编码结构代码和效劳器代码别离根本编码结构, ,建立在已有通信协议上建立在已有通信协议上( (如如 , ,不过据说不过据说 msms 在搞最底层的架构在在搞最底层的架构在 tcp/iptcp/ip 上的上的 soap)soap)的一种的一种标准担忧内存漏洞,这是因为有了标准担忧内存漏洞,这是因为有了_?_?答:答:GCGC。94.94.下面的代码中有什么错误吗?下面的代码中有什么错误吗?_using System;using System;class Aclass A public virtu
56、al void F()public virtual void F()Console.WriteLine(A.F);Console.WriteLine(A.F); 精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用 abstract class B:Aabstract class B:A public abstract override void F();public abstract override void F(); 答:答:abstract overrideabstract override 是是不可以一起修饰不可以一起修饰. . / new public ab
57、stract void F(); / new public abstract void F();95.95.当类当类 T T 只声明了私有实例构造函数时,只声明了私有实例构造函数时, 那么在那么在 T T 的程序文本外部,的程序文本外部,_可以可以_可以可以 or or 不可以从不可以从T T 派生出新的类,不可以派生出新的类,不可以_可可以以 or or 不可以直接创立中如何取消一个窗体的关闭。不可以直接创立中如何取消一个窗体的关闭。答:答:private void Form1_Closing(object sender, Systemprivate void Form1_Closing(o
58、bject sender, System中,中,Appplication.ExitAppplication.Exit 还是还是 Form.Close Form.Close 有什么不同?有什么不同?答:一个是退出整个应用程序,一个是关闭其中一个答:一个是退出整个应用程序,一个是关闭其中一个 formform。103.103.在在 C#C#中有一个中有一个 doubledouble 型的变量,比方型的变量,比方 10321.510321.5,比方,比方122235401.21644122235401.21644, 作为货币的值如何按各个不同国家的习惯来输出。作为货币的值如何按各个不同国家的习惯来输
59、出。比方那么为比方那么为10 321.5010 321.50 和和122 235 401.22122 235 401.22答:答:System.Globalization.CultureInfo MyCulture = newSystem.Globalization.CultureInfo MyCulture = newSystem.Globalization.CultureInfo(en-US);System.Globalization.CultureInfo(en-US);/System.Globalization.CultureInfo MyCulture = new/System.Gl
60、obalization.CultureInfo MyCulture = newSystem.Globalization.CultureInfo(en-GB);System.Globalization.CultureInfo(en-GB);为英为英 国国 货币类型货币类型decimal y = 9999999999999999999999999999m;decimal y = 9999999999999999999999999999m;精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用string str = String.Format(MyCulture,My amo
61、unt = 0:c,y);string str = String.Format(MyCulture,My amount = 0:c,y);104.104.某一密码仅使用某一密码仅使用 K K、L L、M M、N N、O O 共共 5 5 个字母,密码中的单词从左个字母,密码中的单词从左向右排列,密码单词必须遵循如下规那么:向右排列,密码单词必须遵循如下规那么:1 1 密码单词的最小长度是两个字母,可以相同,也可以不同密码单词的最小长度是两个字母,可以相同,也可以不同2 2 K K 不可能是单词的第一个字母不可能是单词的第一个字母3 3 如果如果 L L 出现,那么出现次数不止一次出现,那么出现
62、次数不止一次4 4 M M 不能使最后一个也不能是倒数第二个字母不能使最后一个也不能是倒数第二个字母5 5 K K 出现,那么出现,那么 N N 就一定出现就一定出现6 6 O O 如果是最后一个字母,那么如果是最后一个字母,那么 L L 一定出现一定出现问题一:以下哪一个字母可以放在问题一:以下哪一个字母可以放在 LOLO 中的中的 O O 后面,形成一个后面,形成一个 3 3 个字个字母的密码单词?母的密码单词?A) K B)L C) M D) NA) K B)L C) M D) N答案答案:B:B问题二:如果能得到的字母是问题二:如果能得到的字母是 K K、L L、M M,那么能够形成的
63、两个字母长,那么能够形成的两个字母长的密码单词的总数是多少?的密码单词的总数是多少?A)1A)1 个个 B)3 B)3 个个 C)6 C)6 个个 D D9 9 个个答案答案:A:A问题三:以下哪一个是单词密码?问题三:以下哪一个是单词密码?A) KLLN B) LOML C) MLLO D)NMKOA) KLLN B) LOML C) MLLO D)NMKO精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用答案答案:C:C8. 62-63=18. 62-63=1 等式不成立,请移动一个数字不可以移动减号和等于等式不成立,请移动一个数字不可以移动减号和等于号,使得等式
64、成立,如何移动?号,使得等式成立,如何移动?答案答案:62:62 移动成移动成 2 2 的的 6 6 次方次方105.105.对于这样的一个枚举类型:对于这样的一个枚举类型:enum Color:byteenum Color:byte Red,Red,Green,Green,Blue,Blue,orangeorange 答:答:string ss=Enum.GetNames(typeof(Color);string ss=Enum.GetNames(typeof(Color);byte bb=Enum.GetValues(typeof(Color);byte bb=Enum.GetValues
65、(typeof(Color);106.106. C#C#中中 property property 与与 attribute attribute 的区别,他们各有什么用处,这的区别,他们各有什么用处,这种机制的好处在哪里?种机制的好处在哪里?答:答:attribute:attribute:自定义属性的基类自定义属性的基类;property :;property :类中的属性类中的属性107.C#107.C#可否对内存进行直接的操作?可否对内存进行直接的操作?精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用答:答: 在在 下,下, 引用了垃圾回收引用了垃圾回收 GCG
66、C 功能,功能, 它替代了程序员它替代了程序员 不不过在过在 C#C#中,不能直接实现中,不能直接实现FinalizeFinalize 方法,而是在析构函数中调用基方法,而是在析构函数中调用基类的类的 Finalize()Finalize()方法方法108.ADO108.ADO。NETNET 相对于相对于 ADOADO 等主要有什么改良?等主要有什么改良?答:答: 1:1: 不依赖于不依赖于 oleole dbdb 提供程序提供程序, ,而是使用而是使用 托管提供的托管提供的程序程序,2:,2:不使用不使用 com3:com3:不在支持动态游标和效劳器端游不在支持动态游标和效劳器端游 4:,
67、4:,可以断开可以断开connectionconnection 而保存当前数据集可用而保存当前数据集可用 5: 5:强类型转换强类型转换 6:xml 6:xml 支持支持109.109.写一个写一个 HTMLHTML 页面,实现以下功能,左键点击页面时显示“您页面,实现以下功能,左键点击页面时显示“您好,右键点击时显示“禁止右键。并在好,右键点击时显示“禁止右键。并在 2 2 分钟后自动关闭页面。分钟后自动关闭页面。答:答:setTimeout(window.close();,3000);setTimeout(window.close();,3000);function show()funct
68、ion show() if (window.event.button = 1)if (window.event.button = 1) alert(alert(左左);); else if (window.event.button = 2)else if (window.event.button = 2) alert(alert(右右););精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用 110.110.大概描述一下大概描述一下 ASPASP。NETNET 效劳器控件的生命周期效劳器控件的生命周期答:初始化答:初始化 加载视图状态加载视图状态 处理回发数据处理回发
69、数据 加载加载 发送回发更改通知发送回发更改通知处理回发事件处理回发事件 预呈现预呈现 保存状态保存状态 呈现呈现 处置处置 卸载卸载111.Anonymous111.Anonymous InnerInner ClassClass ( (匿名内部类匿名内部类) ) 是否可以是否可以 extends(extends(继承继承) )其它类,是否可以其它类,是否可以 implements(implements(实现实现)interface()interface(接口接口)?)?答:不能,可以实现接口答:不能,可以实现接口112.Static Nested Class112.Static Nested
70、 Class 和和 Inner Class Inner Class 的不同,说得越多越好的不同,说得越多越好答:答:StaticStatic NestedNested ClassClass 是被声明为静态是被声明为静态staticstatic的内部类,它的内部类,它可以不依赖于外部类实例被实例化。可以不依赖于外部类实例被实例化。 而通常的内部类需要在外部类实而通常的内部类需要在外部类实例化后才能实例化。例化后才能实例化。113.113.,& &和和&的区别。的区别。& &是位运算符,是位运算符, 表示按位与运算,表示按位与运算, &是逻辑运算符,是逻辑运算符, 表示逻辑与表示逻辑与 andan
71、d . .114.HashMap114.HashMap 和和 HashtableHashtable 的区别。的区别。答:答:HashMapHashMap 是是 HashtableHashtable 的轻量级实现非线程平安的实现,他的轻量级实现非线程平安的实现,他精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用们都完成了们都完成了 MapMap 接口,主要区别在于接口,主要区别在于 HashMapHashMap 允许空允许空nullnull键值键值keykey, ,由于非线程平安,效率上可能高于由于非线程平安,效率上可能高于 Hashtable.Hashtable.1
72、15.short s1 = 1; s1 = s1 + 1;115.short s1 = 1; s1 = s1 + 1;有什么错有什么错? short s1 = 1; s1 +=? short s1 = 1; s1 +=1;1;有什么错有什么错? ?答:答:short s1 = 1; s1 = s1 + 1;short s1 = 1; s1 = s1 + 1; s1+1s1+1 运算结果是运算结果是 intint 型,需要型,需要强制转换类型强制转换类型short s1 = 1; s1 += 1;short s1 = 1; s1 += 1;可以正确编译可以正确编译116.Overloaded11
73、6.Overloaded 的方法是否可以改变返回值的类型的方法是否可以改变返回值的类型? ?答:答:OverloadedOverloaded 的方法是可以改变返回值的类型。的方法是可以改变返回值的类型。117.error117.error 和和 exceptionexception 有什么区别有什么区别? ?答:答:errorerror 表示恢复不是不可能但很困难的情况下的一种严重问题。表示恢复不是不可能但很困难的情况下的一种严重问题。比方说内存溢出。不可能指望程序能处理这样的情况。比方说内存溢出。不可能指望程序能处理这样的情况。exceptionexception 表示一种设计或实现问题。表
74、示一种设计或实现问题。 也就是说,也就是说, 它表示如果程序运它表示如果程序运行正常,从不会发生的情况。行正常,从不会发生的情况。118.118. 和和 有什么区别?有什么区别?答:答:表示绑定的数据源表示绑定的数据源是效劳是效劳VS2005VS2005和你以前使用的开发工具有什么最大的和你以前使用的开发工具有什么最大的区别?你在以前的平台上使用的哪些开发思想区别?你在以前的平台上使用的哪些开发思想pattern /pattern /精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用architecturearchitecture可以移植到可以移植到 ASP.NET
75、2.0ASP.NET 2.0 上上 ( (或者已经内嵌在或者已经内嵌在ASP.NET 2.0ASP.NET 2.0 中中) )答:答:1 ASP.NET 2.01 ASP.NET 2.0 把一些代码进行了封装打包把一些代码进行了封装打包, ,所以相比所以相比 1.01.0 相同相同功能减少了很多代码功能减少了很多代码. .2 2 同时支持代码别离和页面嵌入效劳器端代码两种模式同时支持代码别离和页面嵌入效劳器端代码两种模式, ,以前以前 1.01.0 版版本本,.NET,.NET 提示帮助只有在别离的代码文件提示帮助只有在别离的代码文件, ,无无 法法 在页面嵌入效劳比在页面嵌入效劳比拟喜欢拟喜
76、欢4 4 在绑定数据在绑定数据, ,做表的分页做表的分页.Update,Delete,.Update,Delete,等操作都可以可视化操等操作都可以可视化操作作, ,方便了初学者方便了初学者5 5 在在 ASP.NETASP.NET 中增加了中增加了 4040 多个新的控件多个新的控件, ,减少了工作量减少了工作量120.120.重载与覆盖的区别?重载与覆盖的区别?答:答:1 1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系重载是同一个类中方法之间的关系,是水平关系2 2、覆盖只能由一个方法
77、,或只能由一对方法产生关系;方法的重载、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。是多个方法之间的关系。3 3、覆盖要求参数列表相同;重载要求参数列表不同。、覆盖要求参数列表相同;重载要求参数列表不同。4 4、覆盖关系中,调用那个方法体,是根据对象的类型对象对应存、覆盖关系中,调用那个方法体,是根据对象的类型对象对应存储空间类型效劳器中,给定表储空间类型效劳器中,给定表 table1 table1 中有两个字段中有两个字段 ID ID、LastUpdateDateLastUpdateDate,IDID 表示更新的事务号,表示更新的事务号, LastUpdat
78、eDate LastUpdateDate 表示更表示更新时的效劳器时间,请使用一句新时的效劳器时间,请使用一句 SQLSQL 语句获得最后更新的事务号语句获得最后更新的事务号答:答:Select ID FROM table1 Where LastUpdateDate = (SelectSelect ID FROM table1 Where LastUpdateDate = (Select精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用MAX(LastUpdateDate) FROM table1)MAX(LastUpdateDate) FROM table1)125
79、.125.分析以下代码。分析以下代码。public static void test(string ConnectString)public static void test(string ConnectString) System.Data.OleDb.OleDbConnection conn = newSystem.Data.OleDb.OleDbConnection conn = newSystem.Data.OleDb.OleDbConnection();System.Data.OleDb.OleDbConnection();conn.ConnectionString = Connec
80、tString;conn.ConnectionString = ConnectString;trytry conn.Open();conn.Open();. catch(Exception Ex)catch(Exception Ex) MessageBox.Show(Ex.ToString();MessageBox.Show(Ex.ToString(); finallyfinally 精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用if (!conn.State.Equals(ConnectionState.Closed)if (!conn.State.Equals
81、(ConnectionState.Closed)conn.Close();conn.Close(); 请问请问1)1)以上代码可以正确使用连接池吗?以上代码可以正确使用连接池吗?答:答复:如果传入的答:答复:如果传入的 connectionStringconnectionString 是一模一样的话,可以正是一模一样的话,可以正确使用连接池。确使用连接池。不过一模一样的意思是,不过一模一样的意思是,连字符的空格数,连字符的空格数,顺序完全顺序完全一致。一致。2)2)以上代码所使用的异常处理方法,是否所有在以上代码所使用的异常处理方法,是否所有在 testtest 方法内的异常方法内的异常都可以
82、被捕捉并显示出来?都可以被捕捉并显示出来?答:只可以捕捉数据库连接中的异常吧答:只可以捕捉数据库连接中的异常吧. . finallyfinally 中,中,catchcatch 中,中,如果有别的可能引发异常的操作,也应该用如果有别的可能引发异常的操作,也应该用try,catchtry,catch。所以理论上。所以理论上并非所有异常都会被捕捉。并非所有异常都会被捕捉。126.126.公司要求开发一个继承公司要求开发一个继承 System.Windows.Forms.ListViewSystem.Windows.Forms.ListView 类的类的组件,要求到达以下的特殊功能:点击组件,要求到
83、达以下的特殊功能:点击 ListViewListView 各列列头时,能按各列列头时,能按精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用照点击列的每行值进行重排视图中的所有行照点击列的每行值进行重排视图中的所有行 ( (排序的方式如排序的方式如DataGridDataGrid 相似相似) )。根据您的知识,请简要谈一下您的思路:。根据您的知识,请简要谈一下您的思路:答:根据点击的列头答:根据点击的列头, ,包该列的包该列的 IDID 取出取出, ,按照该按照该 IDID 排序后排序后, ,在给绑定在给绑定到到 ListViewListView 中中127.127.
84、什么是什么是 WSEWSE?目前最新的版本是多少?目前最新的版本是多少?答:答:WSE (Web Service Extension)WSE (Web Service Extension) 包来提供最新的包来提供最新的 WEBWEB 效劳平安效劳平安保证,目前最新版本保证,目前最新版本 2.02.0。128.128.在下面的例子里在下面的例子里using System;using System;class Aclass A public A()public A()PrintFields();PrintFields(); public virtual void PrintFields()publ
85、ic virtual void PrintFields() class B:Aclass B:A int x=1;int x=1;int y;int y;精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用public B()public B()y=-1;y=-1; public override void PrintFields()public override void PrintFields()Console.WriteLine(x=0,y=1,x,y);Console.WriteLine(x=0,y=1,x,y); 当使用当使用 new B()new B()创立
86、创立 B B 的实例时,产生什么输出?的实例时,产生什么输出?答:答:X=1,Y=0X=1,Y=0129.129.下面的例子中下面的例子中using System;using System;class Aclass A public static int X;public static int X;static A()static A()X=B.Y+1;X=B.Y+1; class Bclass B 精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用public static int Y=A.X+1;public static int Y=A.X+1;static B
87、()static B()static void Main()static void Main()Console.WriteLine(X=0,Y=1,A.X,B.Y);Console.WriteLine(X=0,Y=1,A.X,B.Y); 产生的输出结果是什么?产生的输出结果是什么?答:答:x=1,y=2x=1,y=2130.abstract class130.abstract class 和和 interfaceinterface 有什么区别有什么区别? ?答:声明方法的存在而不去实现它的类被叫做抽象类答:声明方法的存在而不去实现它的类被叫做抽象类abstractabstractclasscl
88、ass,它用于要创立一个表达某些根本行为的类,并为该类声明,它用于要创立一个表达某些根本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创立方法,但不能在该类中实现该类的情况。不能创立abstractabstract 类的实类的实例。例。然而可以创立一个变量,然而可以创立一个变量,其类型是一个抽象类,其类型是一个抽象类,并让它指向具体并让它指向具体子类的一个实例。子类的一个实例。 不能有抽象构造函数或抽象静态方法。不能有抽象构造函数或抽象静态方法。 AbstractAbstract 类类的子类为它们父类中的所有抽象方法提供实现,的子类为它们父类中的所有抽象方法提供实现, 否那么它
89、们也是抽象否那么它们也是抽象类为。类为。取而代之,取而代之,在子类中实现该方法。在子类中实现该方法。知道其行为的其它类可以在知道其行为的其它类可以在类中实现这些方法。类中实现这些方法。接口接口interfaceinterface是抽象类的变体。在接口中,所有方法都是抽象是抽象类的变体。在接口中,所有方法都是抽象的。的。 多继承性可通过实现这样的接口而获得。多继承性可通过实现这样的接口而获得。 接口中的所有方法都是接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义抽象的,没有一个有程序体。接口只可以定义 static finalstatic final 成员变成员变量。量。 接口的实现
90、与子类相似,接口的实现与子类相似, 除了该实现类不能从接口定义中继承行除了该实现类不能从接口定义中继承行精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用为。当类实现特殊接口时,它定义即将程序体给予所有这种接口为。当类实现特殊接口时,它定义即将程序体给予所有这种接口的方法。的方法。 然后,然后, 它可以在实现了该接口的类的任何对象上调用接口的它可以在实现了该接口的类的任何对象上调用接口的方法。方法。由于有抽象类,由于有抽象类,它允许使用接口名作为引用变量的类型。它允许使用接口名作为引用变量的类型。通常通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceofinstanceof 运算符可以用来决定某对象的类是否实现了接口。运算符可以用来决定某对象的类是否实现了接口。精品文档,word 文档