在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近一个搞NET开发的朋友离职了,想让我给他找点关于NET的相关面试题,准备抱一下佛脚,迎接新的挑战。 我赶紧找到以前检索的各种宝典,试题,今天梳理一下关于NET的基础知识点。 1、面向对象语言的三大特性:封装、继承、多态; 2、接口和类有什么异同: 不同点: ①接口不能直接实例化。 ②接口只包含方法或属性的声明,不包含方法的实现。 ③接口可以多继承,类只能单继承。 ④表达的含义不同,接口主要定义一种规范,统一调用方法,也就是规范类,约束类,类是方法功能的实现和集合 相同点: ①接口、类和结构都可以从多个接口继承。 ②接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。 ③接口和类都可以包含事件、索引器、方法和属性。 3、抽象类和接口有什么异同 ①继承:接口支持多继承;抽象类不能实现多继承。 ②表达的概念:接口用于规范,更强调契约,抽象类用于共性,强调父子。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于"Is A"的关系;而接口是定义行为规 范,强调“Can Do”的关系,因此对于实现接口的子类来说,相对于接口来说,是"行为需要按照接口来完成"。 ③方法实现:对抽象类中的方法,即可以给出实现部分,也可以不给出;而接口的方法(抽象规则)都不能给出实现部分,接口中方法不能加修饰符。 ④子类重写:继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法;而对于接口类所定义的方法或者属性来说,在继承类 中必须重写,给出相应的方法和属性实现。 ⑤新增方法的影响:在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;而对于接口来说,则需要修改继承类,提供新定义的方法。 ⑥接口可以作用于值类型(枚举可以实现接口)和引用类型;抽象类只能作用于引用类型。 ⑦接口不能包含字段和已实现的方法,接口只包含方法、属性、索引器、事件的签名;抽象类可以定义字段、属性、包含有实现的方法。 4、virtual、sealed、override和abstract的区别 ①virtual申明虚方法的关键字,说明该方法可以被重写 ②sealed说明该类不可被继承 ③override重写基类的方法 ④abstract申明抽象类和抽象方法的关键字,抽象方法不提供实现,由子类实现,抽象类不可实例化。 5、重载(override)和重写(overload)有什么区别 重载:当类包含两个名称相同但签名不同(方法名相同,参数列表不相同)的方法时发生方法重载。用方法重载来提供在语义上完成相同而功能不同的方法。(一个类中、多个方法) 重写:在类的继承中使用,通过覆写子类方法可以改变父类虚方法的实现。(二个类以上) 6、结构体和类的区别 ①结构体是值类型,类是引用类型 7、out和ref的异同点 ①ref要求参数在使用之前要显式初始化,out要在方法内部初始化; ②out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。 ③ref是有进有出,out是只出不进;(ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空) 8、值类型和引用类型的区别 ①值类型:就是一个包含实际数据的量。即当定义一个值类型的变量时,C#会根据它所声明的类型,以栈方式分配一块大小相适应的存储区域给这个变量,随后对这个变量的读或写操作就直接在这块内存 区域进行; ②引用类型:一个引用类型的变量不存储它们所代表的实际数据,而是存储实际数据的引用。
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、冒泡排序
所有的参考如下: |
请发表评论