面试题3
1. string、String和StringBuilder的区别。
String不可修改,如果想改变就必须创建一块新的内存空间,重新改变引用到新的空间。而StringBuilder可以不用重新分配内存空间就可以改变其内容,还可以规定长度,在字符串没有达到规定的长度之前不会重新分配内存空间,还可以利用它的某些方法追加字符串的内容。
对于超大字符串来说,用String来操作会增加性能开销,因为需要对超大字符串频繁的分配内存空间,用StringBuilder就可以解决这个问题。
string跟String相比,string是C#的内置关键字,一般用于定义字符串变量,也可以实现少量的功能,比如比较两个字符串、连接字符串、复制字符串、格式化字符串、判断字符串是否为空等。而String一般用于利用它的方法对字符串进行操作。
2. SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。
SELECT [ID] FROM [table1] WHERE [LastUpdateDate] = (SELECT MAX(LastUpdateDate) FROM [table1])
3. 索引有那两种形式?分别有什么优缺点?
聚集索引:表中存储的数据按照索引的顺序存储,检索效率比非聚集索引高,但对数据更新影响较大。
非聚集索引:不影响表中数据的存储顺序,检索效率比聚集索引低,但对数据更新影响较小。
4. 抽象类和接口的区别。
从用途上来说,抽象类的派生类一般用于继承父类的方法和属性,也可以实现父类的抽象方法,比如:黑狗和白狗都可以实现、重写和继承狗的各种属性和行为。而接口一般用于规定实现它的类的行为。比如:狗和鸟都可以“叫”,但它们在其他属性和行为不具备共同点。
从概念上来说,抽象类的派生可以实现父类的方法,也可以不实现,也可以重写或不重写,继承父类的属性。而实现接口的类必须实现接口的方法和属性。
5. 列举ASP.NET 页面之间传递值的几种方式。
用客户端URL的参数传值。
在服务器端通过Reponse.Redirect方法或Server.Transfer方法指定URL,用参数传值。
用Session传值。
6. 访问数据库常用的对象,并说明其作用。
Connection对象:创建与数据源的连接。它需要一些信息来查找数据源,并正确的登录到数据源上。这些信息通过连接字符串来提供。
Command对象:使用Connection对象执行SQL查询。这些查询可以是内置文本、存储过程或对表的直接访问,返回结果集通常存储在DataSet或DataReader对象中。它也提供了一些Execute方法,用于以各种方式执行SQL查询。
Parameter对象:创建SQL语句的参数,并提供必要的信息,如参数的名称、类型、大小、方向、值等。
DataReader对象:一个只向前的只读光标。它需要与数据源的实时连接,提供了循环和使用全部或部分结果集的高效方式。完成任务后,一定要关闭连接。可以调用ExecuteMethod时提供CommandBehavior.CloseConnection枚举,直接读取到文件结尾并自动关闭连接,也可以使用Connection对象的Close方法手动关闭连接。
DataAdapter对象:在断开连接的DataTable对象和物理数据源之间搭起桥梁。它提供了双向的数据传输机制,它可以在数据源上执行SELECT语句,把结果传送到DataTable对象中,还可以执行INSERT、UPDATE和DELETE语句,从DataTable对象中提取输入的数据。
DataSet对象:提供了与数据源断开连接时管理数据的机制。
DataTable对象:DataTable表示内存中的一个逻辑表,它包含行、列、主键、约束等。用于断开连接、数据驱动的编程。
BulkCopy对象:提供了一些信息,目标表名、批量大小、时间期限和列映射,可以定制批量复制的操作。
BulkCopyColumnMapping对象:在原表和目标表之间映射列。
7. AJAX是什么?说明其优缺点。
创建交互式网页应用的网页开发技术,基于XHTML+CSS表示,使用DOM进行动态显示和交互,使用XML和XSTL进行数据交换操作,使用XMLHttpRequest进行异步数据查询和检索。
8. 在M个数中,找N个最大的数。
9. 软件工程的步骤,每个步骤使用的工具,产生那些文档,文档的作用。
10. 设计一个无限层的树,并实现增删改查。