1、什么是面向对象?

面向对象就是把一个人或事务的属性,比如名字,年龄这些定义在一个实体类里面。存和取的时候直接使用存取实体类就把这个人的名字,年龄这些全部存了,这个实体类就叫对象,这种思想就叫面向对象。

2、C# 的三大特性?

封装、继承、多态。

3、什么是继承?

就是子类实现父类的属性和方法,并在此基础上进行相关的扩展。

4、简述 private、 protected、 public、 internal 修饰符的访问权限。

private : 私有成员, 在类的内部才可以访问。

protected : 保护成员,该类内部和继承类中可以访问。

public : 公共成员,完全公开,没有访问限制。

internal: 当前程序集内可以访问。

5、a=10,b=15,请在不使用第三方变量的情况下,把a、b的值互换

int a=a+b; int b=a-b;int a=a-b;

6、session喜欢丢值且占内存,Cookis不安全,请问用什么办法代替这两种原始的方法

redis 或者 memcache。当然,微软也提供了解决方案。iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据库的方式。

7、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

会执行,在return前执行。

8、XML 与 HTML 的主要区别

1. XML是区分大小写字母的,HTML不区分。

2. 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略</p>或者</li>之类的结束 标记。在XML中,绝对不能省略掉结束标记。

3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用 查找结束标记了。

4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。

5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。

9、什么是DDD?什么是ATDD?什么是TDD?什么是BDD?

DDD:领域驱动开发(Domain Drive Design)

ATDD:验收测试驱动开发(Acceptance Test Driven Development)

TDD:测试驱动开发(Test-Driven Development)

BDD:行为驱动开发(Behavior Driven Development)

10.IOC容器?

1. IOC即控制反转,是一种设计思想,在之前的项目中,当我们需要一个对象时,需要new一个对象,而IOC的设计思想是我们将需要的对象注入到一个容器中,就会获得我们所需要的资源 。

2. IOC和DI IOC是控制反转,DI是依赖注入,控制反转的解释有些模棱两可,而依赖注入就很明确,我们将需要的对象注入到容器中,获取所需要的资源。

3. IOC控制反转:正常情况下程序开发是上端调用下端,依赖下端,依赖倒置原则告诉我们,上端不要依赖下端,要依赖抽象,上端只依赖抽象,细节交给第三方工厂(容器)来决定,这就是IOC,就是控制反转——使系统架构可以更稳定,支持扩展。

11、什么是切面?切面能实现什么?

1. AOP即面向切面编程,是OOP编程的有效补充。

2. 使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。从而避免了在业务逻辑的代码中混入很多的系统相关的逻辑——比如权限管理,事物管理,日志记录等等。这些系统性的编程工作都可以独立编码实现,然后通过AOP技术切入进系统即可。从而达到了 将不同的关注点分离出来的效果。

12、什么是委托,事件是不是一种委托?

1. 委托可以把一个方法作为参数代入另一个方法。

2. 委托可以理解为指向一个函数的引用。

3. 事件是一种特殊的委托。

delegate <函数返回类型> <委托名> (<函数参数>)

13.c#多线程是什么?

多线程的优点:可以同时完成多个任务;可以使程序的响应速度更快;可以节省大量时间进行处理任务;可以随时停止任务;可以设置每个任务的优先级,以优化程序性能。

14.WebApi概述

Web API是在.NET Framework之上构建的Web的API的框架,Web API是一个编程接口,用于操作可通过标准HTTP方法和标头访问的系统,Web API需要基于.NET 3.5或更高版本才可以进行开发

15.什么是WebService

webservice是一种跨平台,跨语言的规范,用于不同平台,不同语言开发的应用之间的交互,是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范。

16.存储过程是什么?有什么用?有什么优点?用什么来调用?

存储过程是预编译,安全性高,也是大大提高了效率,存储过程可以重复使用以减少数据库开发人员的工作量,复杂的逻辑我们可以使用存储过程完成,在存储过程中我们可以使用临时表,还可以定义变量,拼接sql语句,调用时,只需执行这个存储过程名,传入我们所需要的参数即可。

17.何为触发器?

触发器是一种特殊的存储过程,主要是通过事件触发而被执行。它可以强化约束来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以级联运算。

常见的触发器有三种:分别应用于Insert , Update , Delete 事件。

18.什么叫做泛型?

只是为了去掉重复代码,应对不同类型的共同需求。

19. C#中值类型和引用类型分别有哪些? 

值类型:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型。

引用类型:数组,用户定义的类、接口、委托,object,字符串。

20.列举ASP.NET页面之间传递值的几种方式。

1. session(viewstate)简单,但易丢失

2. application 全局

3. cookie 简单,但可能不支持,可能被伪造

4. input type="hidden" 简单,可能被伪造

5. url参数简单,显示于地址栏,长度有限

6. 数据库稳定,安全,但性能相对弱

21 .NET的错误处理机制是什么?

.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。

22.C#可否对内存进行直接的操作?

在.net下,.net引用了垃圾回收(GC)功能,它替代了程序员不过在C#中,不能直接实现Finalize方法,而是在析构函数中调用基类的Finalize()方法。

23. ADO.NET相对于ADO等主要有什么改进?

1:ado.net不依赖于ole db提供程序,而是使用.net托管提供的程序,

2:不使用com

3:不在支持动态游标和服务器端游

4:,可以断开connection而保留当前数据集可用

5:强类型转换

6:xml支持

24.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?

this.Server.Transfer、Response.Redirect()、QueryString

25. .NET中读写数据库需要用到那些类?他们的作用?

Connection连接对象,Command执行命令和存储过程,DataReader向前只读的数据流,DataAdapter适配器,支持增删查询,DataSet数据级对象,相当与内存里的一张或多张表。

26.简要谈一下您对微软.NET架构下remoting和webservice两项技术的理解以及实际中的应用。

WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。

remoting是.net中用来跨越machine,process, appdomain进行方法调用的技术,对于三成结构的程序,就可以使用remoting技术来构建.它是分布应用的基础技术.相当于以前的DCOM。

Web Service是一种构建应用程序的普通模型,并能在所有支持internet网通讯的操作系统上实施。Web Service令基于组件的开发和web的结合达到最佳,基于组件的对象模型。

27.什么是反射?

动态获取程序集信息。

28.override与重载的区别?

重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要。

Override是子类对基类中函数的重写。为了适应需要。

29.装箱和拆箱的概念和原理

装箱是将值类型转化为引用类型的过程;

拆箱是将引用类型转化为值类型的过程

30.Session有什么重大BUG,微软提出了什么方法加以解决?

是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。

31.请编程实现一个冒泡排序算法?

int[] array = { , , , , , , , , ,  };
int temp = ;
for (int i = ; i < array.Length-; i++)
{
  for (int j = i+; j < array.Length; j++)
  {
    if (array[j] < array[i])
    {
      temp = array[i];
      array[i] = array[j];
      array[j] = temp;
    }
  }
}
Console.WriteLine($"冒泡排序");
for (int i = ; i < array.Length; i++)
{
  Console.WriteLine($"{array[i]}");
}

32.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复?

List<int> list = new List<int>();
Random r = new Random();
while (true)
{
  int temp2 = r.Next(, );
  if (list.Count == )
  {
    break;
  }
  //不存在则添加
  if (!list.Contains(temp2))
  {
    list.Add(temp2);
  }
}
for (int i = ; i < list.Count; i++)
{
  Console.Write(list[i] + ",");
}

33.查出学生总的分数

SELECT TOP (200) stu_name, SUM(fenshu) AS zong FROM student GROUP BY stu_name

34.SQL查询重复值

select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1)

35、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录

delete from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)

36、查找表中多余的重复记录(多个字段)

select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)

37、删除表中多余的重复记录(多个字段),只留有rowid最小的记录

delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

总结:

面试了10多家基本都有笔试,然后就是谈项目,做了哪些功能,遇到什么难题,怎么解决的,有什么收获,怎么优化,平时是否有关注技术热点等等。

最大的收获其实就是在面试的过程中所作的准备和思考,有些问题平常可能不容易发现的,但是面试官问了就知道自己缺在哪里了,然后下来查资料补补,多复习形成长期记忆,然后静等结果,调整心态;应当是有愈挫愈勇的心态,继续投简历,继续反思,继续学习。

注:

1、软件代码为原创,如需转载,请注明出处;

2、如果文中有什么错误,欢迎指出,谢谢!

 作者:欧阳晓飞

博客地址:http://www.cnblogs.com/ouyang6994/

本文地址:https://www.cnblogs.com/ouyang6994/p/10952606.html

声明:本博客原创文字允许转载,转载时必须保留此段声明,且在文章页面明显位置给出原文链接。

个人总结2019 ASP.NET面试题的更多相关文章

  1. 关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目

    关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目,请大家鉴定,不足之处,敬请指教! 第1到3题解答如下: public enum QuestionTy ...

  2. (转)130道ASP.NET面试题

    130道ASP.NET面试题 转自http://blog.csdn.net/kingmax54212008/article/details/2021204 1. 简述 private. protect ...

  3. 远光软件ASP.NET笔试题小汇总

    ASP.NET笔试题是ASP.NET程序员面试必须经历的,一般会叫你填两个表 1个是你的详细信息表 1个是面试题答卷 两个都要注意反正面是否都有内容不要遗漏,如果考你机试一般也有两种,就是程序连接数据 ...

  4. N++ 道ASP.NET面试题

    InterviewQuestions-ASP.NET N++ 道ASP.NET面试题 1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . ...

  5. ASP.NET面试题130道

     130道ASP.NET面试题 1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. ...

  6. 2019年 Java 面试题解析

    2019年 Java 面试题解析 转载地址:https://www.cnblogs.com/Zz-maker/p/11193930.html 作者: Zz_maker 包含的模块: 本文分为十九个模块 ...

  7. 我们公司的ASP.NET 笔试题,你觉得难度如何

    本套试题共8个题,主要考察C#面向对象基础,SQL和ASP.NET MVC基础知识. 第1-3题会使用到一个枚举类,其定义如下: public enum QuestionType { Text = , ...

  8. 我设计的ASP.NET笔试题,你会多少呢

    本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...

  9. 答:我们公司的ASP.NET 笔试题,你觉得难度如何

    闲来无事,逛逛园子,发现有个面试题,觉得有意思.已自己的理解答来看看,不足之处,请多指教. 原文地址:http://www.cnblogs.com/leotsai/p/aspnet-tests-for ...

随机推荐

  1. DOM设置css样式

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. ueditor+flash粘贴word

    实现方式: 1.前端引用代码 .粘贴word里面的图片路径是fill://D 这种格式 我理解这种是非浏览器安全的 许多浏览器也不支持 目前项目是用了一种变通的方式: 先把word上传到后台 .poi ...

  3. 1.设计模式 - Singleton模式(单件模式)

    Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点,一般用于Activity的控制层全局对象和Singl ...

  4. OpenJudge 1.5.36:计算多项式的值

    描述 假定多项式的形式为xn+xn-1+…+x2+x+1,请计算给定单精度浮点数x和正整数n值的情况下这个多项式的值. 输入输入仅一行,包括x和n,用单个空格隔开.x在float范围内,n <= ...

  5. cas系列-cas登出(四)

    跟登陆一样,登出操作也很重要.由于是多应用间操作,状态保持也是一个要点,根据登出的影响范围,可以将登出操作分为两类: 单应用登出 单点登出(多应用登出) 顾名思义,单应用登出即登出只影响被操作的应用会 ...

  6. java关于Integer设置-128到127的静态缓存

    今天在一个java群里,看到有个群友问到如下为什么第一个为true,第二个为false. System.out.println(Integer.valueOf("50")==Int ...

  7. kafka 45个题目介绍

    >1.Kafka面试问答 Apache Kafka的受欢迎程度很高,Kafka拥有充足的就业机会和职业前景.此外,在这个时代拥有kafka知识是一条快速增长的道路.所以,在这篇文章中,我们收集了 ...

  8. java定时案例

    好久没写笔记了,变懒了! java定时运行的三个案例: 一, 通过sleep方法来达到定时任务的效果 public class testTime { public static void main(S ...

  9. Git如何永久删除某个重要文件文件或文件夹 (包括历史记录) 强制

    有些时候不小心上传了一些敏感文件(例如密码), 或者不想上传的文件(没及时或忘了加到.gitignore里的), 而且上传的文件又特别大的时候, 这将导致别人clone你的代码或下载zip包的时候也必 ...

  10. yield 异步 并行 Promise await async

    yield方式转移执行权的协程之间不是调用者与被调用者的关系,而是彼此对称.平等的 http://www.geeksforgeeks.org/use-yield-keyword-instead-ret ...