.NET面试题20道

1、 switch的break作用:

如果加了break,则break的作用是在相应的位置跳出整个循环:

2、Sting和 StringBuilder的区别:

 String 对象是不可改变,空间不足时需要为该新对象分配新的空间,对字符串进行操作,每次拼接都会构建一个新的String对象,既耗时又浪费内存

 StringBuilder 对象是动态对象,当达到容量时,将自动分配新的空间且容量翻倍

3丶class和struct的区别:

struct:值类型,不能被继承,默认的访问权限是public

class:引用类型,可以被继承,可以实例化,默认的访问权限是private.

4、c++和c#的区别:

C++支持多继承,C#类只能继承一个基类中的实现但可以实现多个接口

5、冒泡排序的时间复杂度和空间复杂度:

时间复杂度为:O( n^2 );

最优的空间复杂度就是开始元素顺序已经排好了,则空间复杂度为:0;

最差的空间复杂度就是开始元素逆序排序了,则空间复杂度为:O(n);

6、事务:

事务是用户定义的一系列执行SQL语句的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。

      (1)原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

      (2)一致性:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。

      (3)隔离性:如果有两个事务,运行在相同的时间内,执行 相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,  必须串行化或序列化请 求,使得在同一时间仅有一个请求用于同一数据。

      (4)持久性:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

7、索引,视图,存储过程:

 索引:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。

视图:也被称作虚表;视图中不存放数据,数据依然存放在视图引用的原始数据表中;视图仅仅用来查询,视图不占实际空间

存储过程:存储过程可以用来增删改查;存储过程在创建时即在服务器上进行编译,所以执行起来比单个 SQL 语句快。

8、面向对象的三大特性:

封装;在于保护或者防止代码(数据)被我们无意中破坏

继承:继承主要实现重用代码,节省开发时间

多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。重载(overload)和重写(override)是实现多态的两种主要方式。

9、进程和线程:

进程:是并发执行的程序在执行过程中分配和管理资源的基本单位

线程:是进程的一个执行单元,比进程更小的独立运行的基本单位,提高并发性,开销少,效率高,切换速度快,共享进程资源;

10、GC垃圾回收机制:

判定引用类型对象或者其包含的子对象没有任何引用是有效的,那么系统就认为它是垃圾

Using {}里面的代码执行完成后,会自动调用对象的 Dispose()方法。

11、值类型和引用类型:

值类型的变量直接存储数据,而引用类型的变量持有的是数据的引用;

值类型:byte,short,int,long,float,double,decimal,char,bool 和 struct;值类型变量声明后,不管是否已经赋值,编译器为其分配内存

引用类型:string 和 class;

当声明一个类时,并没有为其分配堆上的内存空间,当使用 new 创建一个类的实例时,分配堆上的空间。

12、装箱和拆箱:

装箱是将值类型转换为引用类型 ;拆箱是将引用类型转换为值类型。

object类型是一切类型的父类。


 13、重写和重载:

重写:当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致

重载:一个类中的方法与另一个方法同名,但是参数列表或参数类型不同,类型可以不同。

14、ASP.NET中页面传值的几种方式:

QueryString、Session、Cookie、Application、Server.Transfer
15、对面向对象的理解:

面向对象是一种以事物为中心的编程思想。

16、abstract,New

抽象类不能实例化。只允许在抽象类中使用抽象方法声明。在抽象方法声明中使用 static 或 virtual 修饰符是错误的;因为抽象方法声明不提供实际的实现,所以没有方法体;

New创建类型的新实例

17、static、virtual

virtual只能在基类中使用,且可以方法里面实现;且abstract和virtual只能写一个;

static:静态的,不变的,在一个类中只有一个,一个方法前加上static修饰后要对其进行调用可以直接通过类名点出来,不用再对类进行实例化。且abstract和static只能写一个;

18、JavaScript有哪几种基本数据类型?

五种基本数据类型:undefined、null、boolean、 number、string;另外还含有一种复杂的数据类型:object.

19、 在c#中“==”和equals 的区别?

对于值类型而言,==与Equals相同,均是判断其值是否相等。

对于引用类型而言,其栈中存储的是对象的地址,那么==就是比较两个地址是否相等,即是否指向同一个对象;Equals函数则是比较两个对象在堆中的数据是否一样,即两个引用类型是否是对同一个对象的引用。

20、 Redis支持哪些数据类型?

string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值