net面试2

1. ADO.net五大对象。

答 .

DataCommand:对数据库发出命令(如增删查该)
DateDast:存储数据(可以存储多张表)
DateAdapter:主要是在数据源和DateSet之间进行工作
DateReader:主要读取数据(只读,而且效率好,不用传回数据)
加分点:使用Connection 对象来连接数据库,使用Command 或DataAdapter对象来执行SQL语句,并将执行的结果返回给DataReader 或DataAdapter ,

然后再使用取得的DataReader 或DataAdapter 对象操作数据结 果。


2.三层架构
DAL(数据访问层):该层直接操作数据库(如増删查改),每层是垂直关系
BLL (业务逻辑层)针对具体问题的操作,也可以说是对数据层的操作,对业务逻辑的处理
UI (表现层)用户体验界面
优点:分工明确,条理清晰,易于调试,而且具有可扩展性。缺点:增加成本。


3.装箱:是从值类型向引用类型之间的转换
拆箱:是从引用类型向值类型之间的转换。


4.
CTS:Common Type System 通用系统类型。Int32、Int16→int、String→string、Boolean→bool (一种确定公共语言运行库如何定义,使用和管理类型的规范)
CLS:Common Language Specification 通用语言规范。不同语言语法的不同。(和其他对象完全交互)
CLR:Common Language Runtime 公共语言运行时,就是.Net提供的那些类。(提供了一个公共语言运行的环境,为开发提供轻松服务)


5.在dotnet中类(class)与结构(struct)的异同?
Class可以被实例化,属于引用类型,分配在内存的堆上
struct属于值类型,分配在内存的栈上(Int32、Boolean等都属于结构体。)

6,能用foreach遍历访问的对象的需求
需求实现IEnumerable接口或者声名Getnumerator方法的类型;


7.值类型和引用类型之间的区别
1.将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用,
而不复制对象本身。
2.引用类型可以实现接口
3.值类型不可能包含null 值:然而,可空类型功能允许将null 赋给值类型。
4.每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。


8.C#中的接口和类有什么异同。
相同:1.都可以从多个接口继承。
2.接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。
3.接口和类都可以包含事件、索引器、方法和属性。
不同点:1.接口不能直接被实例化
2.接口不包含方法的实现
3.接口可以多继承,而类只能单继承
 
9.abstract class和interface有什么区别? 
相同点:都不能被直接实例化,都可以通过继承实现抽象方法
不同点:接口支持多继承,抽象类不能实现多继承
接口只能定义行为;抽象类既可以定义行为,还可能提供实现。
接口可以用于支持回调(CallBack);抽象类不能实现回调,因为继承不支持。
接口只包含方法(Method)、属性(Property)、索引器(Index)、事件(Event)的签名,但不能定义字段和包含实现的

10.如何把一个Array复制到ArrayList里(*)

实现1 string[] s ={ "111", "22222" }; ArrayList list = new ArrayList(); list.AddRange(s); 
实现2 string[] s ={ "111", "22222" }; ArrayList list = new ArrayList(s); 

11.string str=null是不给他分配内存空间,而string str=""是给他分配长度为字符串的内存空间 string str=null没有sting对象 string str=“”是有一个字符串对象


12.写出一条Sql语句:取出表A中第31到40记录(ID为主键)
1.select top 10* from A where id not in(select top 30 id from A)


查询最近的入职10个人:
 select top 10 * from  表  order  by 时间

13.C#中的接口和类有什么异同。
答:接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念!
而类是负责功能的具体实现!
在类中也有抽象类的定义,抽象类与接口的区别在于:
抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。
但接口是一个行为的规范,里面的所有东西都是抽象的!
一个类只可以继承一个基类也就是父类,但可以实现多个接口


谈谈final, finally, finalize的区别。
答:
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此
一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中
不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为     final的方法也同样只能使用,不能重载
finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会
执行,然后控制就会进入 finally 块(如果有的话)。
finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理
工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的
,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize()      方法是在垃圾收集器删除对象之前对这个对象调用的。


abstract class和interface有什么区别?
答:
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创
建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它
们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。
接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这
种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引
用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

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;
            else return Foo(i -1) + Foo(i - 2);

        }
    }

 封装:将数据或函数等集合在一个个的单元中(我们称之为类);在于保护或者防止代码被我们无意中破坏; 
 继承:实现代码重用,节约开发时间 
多态:同一操作用不不同的操作对象,可以有不同的解释,产生不同的执行结果;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值