C#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#会因她所声明的类,以栈方式分配一块大小互相适应之囤积区域被这个变量,随后对斯变量的宣读或写操作就一直以这块内存
         区域拓展;

  ②招用色:一个援类型的变量不存储它们所代表的实在多少,而是存储实际数据的援。
  引用类型划分点儿步创建:首先在栈上创建一个引用变量,然后于积上创建对象本身,再管此内存的句柄(也是内存的首地址)赋给援变量;

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

 

相关文章