当前位置:K88软件开发文章中心编程语言.NETC# → 文章内容

c#面试题及答案整理

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-23 14:00:50

nnection:数据库连接对像Command:数据库命令12.什么是Code-Behind技术?答:代码后置。13.在.net中,配件的意思是?答:程序集。(中间语言,源数据,资源,装配清单)14.常用的调用WebService的方法有哪些?答:1.使用WSDL.exe命令行工具。2.使用VS.NET中的Add Web Reference菜单选项15.在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。答:string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间。16.请详述在C#中类(class)与结构(struct)的异同?答:class可以被实例化,属于引用类型,class可以实现接口和单继承其他类,还可以作为基类型,是分配在内存的堆上的。struct属于值类型,不能作为基类型,但是可以实现接口,是分配在内存的栈上的。17.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。答:解1:  select top 10 * from A where id not in (select top 30 id from A)解2:  select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)18.GC是什么? 为什么要有GC?答:GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System.gc()Runtime.getRuntime().gc()19.String s = new String("xyz");创建了几个String Object?答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。20.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?答:会执行,在return前执行。21.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。22.谈谈final, finally, finalize的区别。答:final:修饰符(关键字),如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载finally:在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。finalize:方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。23.如何处理几十万条并发数据?答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.24.进程和线程的区别?答:进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。25.堆和栈的区别?答:栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。26.成员变量和成员函数前加static的作用?答:它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。27.请指出GAC的含义?答:全局程序集缓存。28.DataReader与Dataset有什么区别?答DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库.任何对SqlConnection的操作都会引发DataReader的异常.因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的.你读了第一条后就不能再去读取第一条了. DataSet则是将数据一次性加载在内存中.抛弃数据库连接.读取完毕即放弃数据库连接.因为DataSet将数据全部加载在内存中.所以比较消耗内存.但是确比DataReader要灵活.可以动态的添加行,列,数据.对数据库进行回传更新操作。29.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令和语句 new 创建实例 new 隐藏基类中方法。答:using:引入名称空间或者使用非托管资源,使用完对象后自动执行实现了IDisposable接口的类的Dispose方法new:新建实例或者隐藏父类方法30.什么是虚函数?什么是抽象函数?答:虚函数:没有实现的,可由子类继承并重写的函数。Virtual CallSomeOne();抽象函数:规定其非虚子类必须实现的函数,必须被重写。public abstract void CallSomeOne(); 31.C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?答:在C#中有两个属性,分别为Property和Attribute, Property比较简单,就是我们常用的get和set,主要用于为类中的private和protected变量提供读取和设置的接口。Attribute用来说明这个事物的各种特征的一种描述。而Attribute就是干这事的。它允许你将信息与你定义的C#类型相关联,作为类型的标注。这些信息是任意的,就是说,它不是由语言本身决定的,你可以随意建立和关联任何类型的任何信息。你可以作用属性定义设计时信息和运行时信息,甚至是运行时的行为特征。关键在于这些信息不仅可以被用户取出来作为一种类型的标注,它更可以被编译器所识别,作为编译时的一种附属条件参加程序的编译。定义属性:属性实际上是一个派生自System.Attribute基类的类。System.Attribute类含有几个用于访问和检查自定义属性的方法。尽管你有权将任何类定义为属性,但是按照惯例来说,从System.Attribute派生类是有意义的32.HashMap和Hashtable的区别答:HashMap是Hashtab

上一页  [1] [2] [3]  下一页


c#面试题及答案整理