C# 相关面试试题简单的下结论

近些年一个作NET开发的冤家离职了,想吃我让他找找点有关NET的相关面试题,准备得一下佛脚,迎接新的挑战。

我快找到以前找的各种宝典,试题,今天梳理一下关于NET的基础知识点。

1、面向对象语言的老三分外特征:封装、继承、多态;

2、接口及类似有什么异同:

  不同点:

   ①接人无能够直接实例化。

   ②属人仅含有方法或者性质的宣示,不含方法的兑现。

   ③连通人数可多延续,类只能单继承。

   ④发挥的义不同,接口主要定义一种植标准,统一调用方法,也就是规范类,约束类,类是方法效果的实现与集合

 相同点:

   ①接口、类及组织还好起多个接口继承。

   ②连接人数类似于肤浅基类:继承接口的其他不抽象类型且要贯彻接口的兼具成员。

   ③接口和类都可以分包事件、索引器、方法与总体性。

3、抽象类和接口有什么异同

  ①累:接口支持多延续;抽象类非能够兑现多累。

  ②发表的定义:接口用于规范,更强调契约,抽象类用于共性,强调父子。抽象类是如出一辙类东西之万丈聚合,那么对继续抽象类的子类来说,对于肤浅类来说,属于”Is
A”的关联;而接口是概念行为规            范,强调“Can
Do”的涉,因此对实现接口的子类来说,相对于接口来说,是”行为要按照接口来就”。

  ③主意实现:对抽象类中之方法,即可以为闹实现部分,也堪免叫有;而接口的点子(抽象规则)都无克给出实现有,接口中方法不可知加修饰符。

  ④子类更写:继承类对于双方所涉嫌艺术的兑现是不同之。继承类对于肤浅类所定义之泛方法,可以毫无重写,也就是说,可以延用抽象类的不二法门;而对于接口类所定义之方式要性质来说,在继承类
         中必须重写,给闹相应的法子和属性实现。

  ⑤新加方法的震慑:在空虚类吃,新增一个方法吧,继承类中不过因非用作其它处理;而于接口来说,则要改就承类,提供新定义之计。

  ⑥接口可以作用为值类型(枚举可以实现接口)和援类型;抽象类只能作用为援类型。

  ⑦接人不克包含字段和曾兑现之办法,接口就含有方法、属性、索引器、事件的签字;抽象类可定义字段、属性、包含有落实的法门。

4、virtual、sealed、override和abstract的区别

  ①virtual申明虚方法的重要性字,说明该法好吃重新写

  ②sealed说明该类不可为接续

  ③override重写基类的计

  ④abstract申明抽象类和架空方法的要紧字,抽象方法无提供实现,由子类实现,抽象类非可实例化。

5、重载(override)和重写(overload)有什么分别

  重载:当类包含两单名称相同而签名不同(方法名相同,参数列表不一样)的章程时来方法重载。用艺术重载来供于语义上做到同样而功能不同之道。(一个好像中、多独方法)

  重写:在类的延续中采用,通过覆写子类方法好转父类虚方法的贯彻。(二独八九不离十以上)

 6、结构体和接近的别

  ①结构体是值类型,类是援类型
  ②收构体不支持无惨构造函数,不支持析构函数,并且不可知有protected修饰;
  ③构造体常用于数据存储,类class多用于行为;
  ④类class需要因此new关键字实例化对象,struct可以不适用new关键字;
  ⑤类class可以呢抽象类,struct不支持抽象;

 7、out和ref的异同点

  ①ref渴求参数在行使前要显式初始化,out要当法中初始化;

  ②out适合用在得retrun多单返回值的地方,而ref则用当急需给调用的主意修改调用者的援的时光。

  ③ref是有进有出,out是独自出无上;(ref可以拿参数的数值传递进函数,但是out是要把参数清空,就是说你无法拿一个数值从out传递进入的,out进去后,参数的数值也空)

 8、值类型和援类型的分

  ①价类型:就是一个富含实际数据的计量。即当定义一个值类型的变量时,C#见面依据它们所声明的色,以栈方式分配一片很小互相适应之贮存区域为此变量,随后对之变量的宣读或摹写操作就直接以这块内存
         区域开展;

  ②逗用路:一个援类型的变量不存储它们所表示的其实数目,而是存储实际多少的援。
  引用类型划分点儿步创建:首先在栈上创建一个援变量,然后以积上创建对象本身,再把这个内存的句柄(也是内存的首地址)赋给援变量;

图片 1

 

 9、什么是拆箱和装箱

   装箱→值类型转换为援类型,拆箱→引用类型转换为值类型。

10、装箱和拆箱有什么性质影响?怎么化解为?

  ①影响:都事关到内存的分配与对象的缔造,有比充分之性影响;

  ②缓解:使用泛型

11、委托是啊?事件是不是委托?

  ①信托:类似于 C或
C++中的函数指针,允许将艺术作为参数进行传递;(可以把一个方法作为参数代入另外一个办法)

  ②事件是出格之信托,事件里是基于委托来落实的;

 12、构造器Constructor是否足以吃接续?是否好吃Override?

  Constructor不可以给连续,因此无能够被再写(Overriding),但可叫重载(Overloading).

13、是否可集成String类?

  String类是final类所以不得以延续string类。

14、当一个线程进入一个对象的道后,其他线程是否可以上该方法?

  不可以,一个目标的不二法门才能够由一个线程访问。

15、用极端管用之办法算有2趁以8相当被几?

  2<<3(左乘,右除)

16、Error和Exception有是别?

   Error表示恢复不是休容许,但是那个不方便,Exception代表无异栽实际还是促成问题,它代表程序运行正常不可以发的。

 17、UDP和TCP连接起和异同?

  ①TCP凡传输控制协议,提供的是面向连接的,是牢靠的,字节约流服务,TCP提供过重拨,检验数据功能。

  ②UDP是用户数据报协议,是一个概括的面向数据报的传输协议,是不可靠的连。

18、new关键字的用法

 ①new 运算符 用于创建对象和调用构造函数。

   ②new 修饰符 用于为基类成员隐藏继承成员。

   ③new 约束   用于在泛型声明中约或当类型参数的参数的品种。

 19、Using关键字之用法

  ①唤起用命名空间;

  ②乎命名空间或项目创建别名;(using + 别名 =
包括详细命名空间信息的有血有肉的型)

  ③保释资源(关闭文件流);

 20、可访问性级别有哇几栽

  ①pubic 访问不吃限制。

  ②protected 访问仅限于包含类或打包含类派生的项目。

  ③internal 访问仅限于当前次集。

  ④protected internal 访问仅限于从包含类派生的时程序集或项目。

  ⑤private 访问仅限于包含类型。

21、 一排数之条条框框如下: 1、1、2、3、5、8、13、21、34……
求第30各数是小, 用递归算法实现。

22、冒泡排序

 

持有的参考如下:

http://www.cnblogs.com/lgxlsm/p/5256482.html

http://www.cnblogs.com/jx270/p/3367431.html

http://www.cnblogs.com/lhws/archive/2010/09/21/1827115.html

http://www.cnblogs.com/Shadowing/archive/2013/11/13/3422185.html

http://www.cnblogs.com/yangzhiyu/p/3950550.html

http://blog.csdn.net/wust__wangfan/article/details/17841055