ASP.NET(C#)⾯试总结⾯试题⼤全
⼀、对于 Web 性能优化,您有哪些了解和经验吗?
出现指数:五颗星
主要考点:这道题是博主在博客园的新闻⾥⾯看到的,回想之前⼏年的⾯试经历,发现此题出现概率还是⽐较⾼的。因为它的考⾯灰常⼴,可以让⾯试官很快了解你的技术涉及⾯以及这些技术⾯的深度。
参考答案:这个问题可以分前端和后端来说。
1、前端优化
(1)减少 HTTP 请求的次数。我们知道每次发送http请求,建⽴连接和等待相应会花去相当⼀部分时间,所以在发送http请求的时候,尽量减少请求的次数,⼀次请求能取出的数据就不要分多次发送。
(2)启⽤浏览器缓存,当确定请求的数据不会发⽣变化时,能够直接读浏览器缓存的就不要向服务端发送请求。⽐如我们ajax⾥⾯有⼀个参数能够设置请求的时候是否启⽤缓存,这种情况下就需要我们在发送请求的时候做好相应的缓存处理。
(3)css⽂件放 在<head>⾥⾯,js⽂件尽量放在页⾯的底部。因为请求js⽂件是很花费时间,如果放在<head>⾥⾯,就会导致页⾯的 DOM树呈现需要等待js⽂件加载完成。这也就是为什么很多⽹站的源码⾥⾯看到引⽤的⽂件放在最后的原因。
(4)使⽤压缩的css和js⽂件。这个不⽤多说,⽹络流量⼩。
(5)如果条件允许,尽量使⽤CDN的⽅式引⽤⽂件,这样就能减少⽹络流量。⽐如我们常⽤的⽹站www.bootcdn/。
(6)在写js和css的语法时,尽量避免重复的css,尽量减少js⾥⾯循环的次数,诸如此类。
2、后端优化:
(1)程序的优化:这是⼀个很⼤的话题,我这⾥就选⼏个常见的。⽐如减少代码的层级结构、避免循环嵌套、避免循环CURD数据库、优化算法等等。
(2)数据库的优化:(由于数据库优化不是本题重点,所以可选⼏个主要的来说)⽐如启⽤数据库缓存、常⽤的字段建索引、尽量避免⼤事务操作、避免select * 的写法、尽量不⽤in和not in 这种耗性能的⽤法等等。
(3)服务器优化:(这个可作为可选项)负载均衡、Web服务器和数据库分离、UI和Service分离等等。
⼆、MVC路由理解?(屡见不鲜)
出现指数:五颗星
主要考点:此题主要考点是MVC路由的理解。
参考答案:
1、⾸先我们要理解MVC中路由的作⽤:url Routing的作⽤是将浏览器的URL请求映射到特定的MVC控制器动作。
2、当我们访问localhost:8080/Home/Index 这个地址的时候,请求⾸先被UrlRoutingModule截获,截获请求后,从Routes中得到与当前请求URL相符合的RouteData对象, 将RouteData对象和当前URL封装成⼀个RequestContext对象,然后从Requestcontext封装的RouteData中得到 Controller名字,根据Controller的名字,通过反射创建控制器对象,这个时候控制器才真正被激活,最后去执⾏控制器⾥⾯对应的 action。
三、谈谈你觉得做的不错系统,⼤概介绍下⽤到了哪些技术?
出现指数:五颗星
主要考点:这是⼀道⾮常开放的⾯试题。博主遇到过好⼏家公司的⾯试官都问道了这个,博主觉得他们是想通过这个问题快速了解⾯试者的技术⽔平。此题只要结合你最近项⽬⽤到的技术谈谈就好了。
参考答案:
就拿我之前做过的⼀个项⽬为例来简单说明⼀下吧。项⽬分为客户端和服务端,客户端分 为BS客户端和CS客户端,BS客户端采⽤MVC 5.0的框架,CS客户端是Winform项⽬,服务端使⽤WebApi统⼀提供服务接⼝,考虑以后可能还要扩展⼿机端,所以服务接⼝的参数和返回值使⽤ 通⽤的Json格式来传递数据。
1、服务端采⽤的⾯向接⼝编程,我们在软件架构的过程中,层和层之间通过接⼝依赖, 下层不是直接给上层提供实现,⽽是提供接⼝,具体的实现以依赖注⼊的⽅式在运⾏的时候动态注⼊进去。MEF就是实现依赖注⼊的⼀种组件。它的使⽤使得UI 层不直接依赖于BLL层,⽽是依赖于中间的⼀个IBLL层,在程序运⾏的时候,通过MEF动态将BLL⾥⾯的实现注⼊到UI层⾥⾯去,这样做的好处是减少 了层与层之间的耦合。服务端的异常⾥⾯、权限验证、⽇志记录等通⽤功能使⽤了AOP拦截的机制统⼀管理,项⽬中使⽤的是Postsharp这个组件,很好 地将通⽤需求功能从不相关的类当中分离出来,提⾼了代码的可维护性。
2、BS的客户端采⽤的jquery+bootstrap 的⽅式,所有页⾯采⽤流式布局,能更好适应各种不同的终端设备(PC、⼿机)。项⽬中使⽤了各种功能强⼤的bootstrap组件,能适应各种复杂的业务需求。
四、Js继承实现。
出现指数:五颗星
主要考点:这道题考验⾯试者对js理解的深度。根据博主的经历,这种题⼀般在笔试出现的⼏率较⼤,为什么把它放在这⾥,因为它确实太常见了。其实js实现继承的⽅式很多,我们只要写好其中⼀种就好了。
参考答案:原型链继承
1//1.定义Persiong函数
2function Person(name, age) {
3this.name = name;
4this.age = age;
5            }
6//2.通过原型链给Person添加⼀个⽅法
7            Info = function () {
8                console.log(this.name + " is " + this.age + " years old!");
9            }
10function Teacher(staffId) {
11this.staffId = staffId;
12            }
13//3.通过prototype⽣命 Teacher继承Person
14            Teacher.prototype = new Person();
15//4.实例Teacher函数
16var will = new Teacher(1000);
17            will.name= "Will";
18            will.age = 28;
19//5.调⽤⽗类函数
20            Info();
五、谈谈你对设计模式的认识?结合你⽤得最多的⼀种设计模式说说它的使⽤。
出现指数:五颗星
主要考点:不⽤多说,这题考的就是对设计模式的理解。⼀般为了简单可能会要求你写⼀个单例模式,注意最好是写⼀个完整点的,考虑线程安全的那种。然后会让你说说你在项⽬中什么情况下会⽤到这种模式
参考答案:
通⽤写法
1public class Singleton
2    {
3// 定义⼀个静态变量来保存类的实例
4private static Singleton uniqueInstance;
5// 定义⼀个标识确保线程同步
6private static readonly object locker = new object();
7// 定义私有构造函数,使外界不能创建该类实例
8private Singleton()
9        {
10        }
11///<summary>
12///定义公有⽅法提供⼀个全局访问点,同时你也可以定义公有属性来提供全局访问点
13///</summary>
14///<returns></returns>
15public static Singleton GetInstance()
16        {// 双重锁定只需要⼀句判断就可以了
17if (uniqueInstance == null)
19lock (locker)
20                {
21// 如果类的实例不存在则创建,否则直接返回
22if (uniqueInstance == null)
23                    {
24                        uniqueInstance = new Singleton();
25                    }
26                }
27            }
28return uniqueInstance;
29        }
30    }
单例模式确保⼀个类只有⼀个实例,并提供⼀个全局访问点,它的使⽤场景⽐如任务管理 器整个系统中应该只有⼀个把,再⽐如操作⽂件的对象,同⼀时间我们只能有⼀个对象**作⽂件吧。最重要的,⽐如我们项⽬中⽤得⾮常多的功能→⽇志记录,在 ⼀个线程中,记录⽇志的对象应该也只能有⼀个吧。单例模式的⽬的是为了保证程序的安全性和数据的唯⼀性。或者你也可以结合你使⽤的其他设计模式来说明。
六、IIS的⼯作原理?
出现指数:四颗星
主要考点:此题主要考的是 framework和IIS是如何结合呈现页⾯的。这是⼀个有点复杂的过程,⾯试的时候不可能说得完整,那么我们就抓住⼏个关键点说说就可以。其实博主也不能完全理解这个过程,今天正好借这个机会温**下。
参考答案:
1、当客户端发送HTTP Request时,服务端的HTTP.sys(可以理解为IIS的⼀个监听组件) 拦截到这个请求;
2、HTTP.sys 联系 WAS 向配置存储中⼼请求配置信息。
3、然后将请求传⼊IIS的应⽤程序池。
4、检查请求的后缀,启动aspnet_isapi.dll这个dll,这个dll是 framework⾥⾯的,也就是说到这⼀步,请求进⼊了 framework的管辖范围。
5、这个时候如果是WebForm,开始执⾏复杂的页⾯⽣命周期(HttpRuntime→ProcessRequest→HttpContext→HttpHandler);如果是MVC,则启动mvc的路由机制,根据路由规则为URL来指定HttpHandler。
6、httpHandler处理请求后,请求结束,给出Response,客户端处理响应,整个过程结束。
七、Http协议
出现指数:四颗星
主要考点:此题主要考对于web⾥⾯http协议的理解。
参考答案:
1、http协议是浏览器和服务器双⽅共同遵循的规范,是⼀种基于TCP/IP应⽤层协议。
2、http是⼀种典型的请求/响应协议。客户端发送请求,请求的内容以及参数存放到请求报⽂⾥⾯,服务端收到请求后,做出响应,返回响应的结果放到响应报⽂⾥⾯。通过
F12可以查看请求报⽂和响应报⽂。
3、http协议是”⽆状态”的,当客户端向服务端发送⼀次http请求后,服务端收到请求然后返回给客户端相应的结果,服务器会⽴即断开连接并释放资源。在实际开发过程中,我们有时需要“保持”这种状态,所以衍⽣出了Session/Cookie这些技术。
4、http请求的⽅式主要有get/post。
5、http状态码最好记⼏个,博主有⼀次⾯试就被问到了。200(请求成功)、404(请求的资源不存在)、403(禁⽌访问)、5xx(服务端错误)
⼋、数据库优化经验(后端⼯程师⾮常常见)
出现指数:四颗星
主要考点:此题考察后端⼯程师操作数据库的经验。说实话,数据库是博主的弱项,博主觉得对于这种考题,需要抓住⼏个常⽤并且关键的优化经验,如果说得不对,欢迎⼤家斧正。
参考答案:
1、数据库运维⽅⾯的优化:启⽤数据库缓存。对于⼀些⽐较常⽤的查询可以采⽤数据库缓存的机制,部署的时候需要注意设置好缓存依赖项,防⽌“过期”数据的产⽣。
2、数据库索引⽅⾯的优化:⽐如常⽤的字段建索引,联合查询考虑联合索引。(PS:如果你有基础,可以敞开谈谈聚集索引和⾮聚集索引的使⽤场景和区别)
3、数据库查询⽅⾯的优化:避免select * 的写法、尽量不⽤in和not in 这种耗性能的⽤法等等。
4、数据库算法⽅⾯的优化:尽量避免⼤事务操作、减少循环算法,对于⼤数据量的操作,避免使⽤游标的⽤法等等。
九、关于代码优化你怎么理解?你会考虑去代码重构吗?
出现指数:四颗星
主要考点:此题考的是⾯试者对代码优化的理解,以及代码如何重构的相关知识。
参考答案:
1、对于代码优化,之前的公司每周会做代码审核,审核的主要作⽤就是保证代码的正确性和执⾏效率,⽐如减少代码的层级结构、避免循环嵌套、避免循环CURD数据库、尽量避免⼀次取出⼤量数据放在内存中(容易内存溢出)、优化算法等。
2、对于陈旧代码,可能很多地⽅有调⽤,并且开发和维护⼈员很有可能不是同⼀个⼈,所以重构时要格外⼩⼼,如果没有⼗⾜的把握,不要轻易重构。如果必须要重构,必须做好充分的单元测试和全局测试。
⼗、谈谈你的优点和缺点?
出现指数:四颗星
主要考点:这道题让⼈有⼀种骂⼈的冲动,但是没办法,偏偏很多所谓的⼤公司会问这个。⽐如华为。这个问题见仁见智,答案可以⾃⼰组织。
参考答案:
优点:对于新的技术学**能⼒强,能很快适应新环境等等
缺点:对技术太过于执着等等
⼗⼀、关于服务器端 MVC 架构的技术实现,您是怎样理解的?这种架构⽅式有什么好处?您在项⽬中是如何应⽤这⼀架构的?
出现指数:三颗星
主要考点:此题主要考的对于MVC这种框架的理解。
参考答案:MVC,顾名思义,Model、View、Controller。所有的 界⾯代码放在View⾥⾯,所有涉及和界⾯交互以及URL路由相关的逻辑都在Controller⾥⾯,Model提供数据模型。MVC的架构⽅式会让
系 统的可维护性更⾼,使得每⼀部分更加专注⾃⼰的职责,并且MVC提供了强⼤的路由机制,⽅便了页⾯切换和界⾯交互。然后可以结合和WebForm的⽐较, 谈谈MVC如何解决复杂的控件树⽣成、如何避免了复杂的页⾯⽣命周期。jquery框架面试题
⼗⼆、⽹站优化:⽹站运⾏慢,如何定位问题?发现问题如何解决?
出现指数:三颗星
主要考点:此题和问题⼀类似,考察Web的问题定位能⼒和优化⽅案。
参考答案:
浏览器F12→⽹络→查看http请求数以及每个请求的耗时,到问题的根源,然后依次解决,解决⽅案可以参考问题⼀⾥⾯的Web优化⽅案。
⼗三、说说你最擅长的技术?并说说你是如何使⽤的?
出现指数:三颗星
主要考点:这是⼀道⾮常开放的⾯试题。最初遇到这种问题,博主很想来⼀句:你妹,这叫什么问题!
但确实有⾯试官问到。回头想想,其实此题考查你擅长的技术的涉及深度。其实博主觉得对于这个问题,可以结合你项⽬中⽤到的某⼀个技术来说就好了。
简单谈谈MEF在我们项⽬⾥⾯的使⽤吧。
在谈MEF之前,我们必须要先谈谈DIP、IOC、DI
依赖倒置原则(DIP):⼀种软件架构设计的原则(抽象概念)
控制反转(IoC):⼀种反转流、依赖和接⼝的⽅式(DIP的具体实现⽅式)。
依赖注⼊(DI):IoC的⼀种实现⽅式,⽤来反转依赖(IoC的具体实现⽅式)。
什么意思呢?也就是说,我们在软件架构的过程中,层和层之间通过接⼝依赖,下层不是 直接给上层提供实现,⽽是提供接⼝,具体的实现以依赖注⼊的⽅式在运⾏的时候动态
注⼊进去。MEF就是实现依赖注⼊的⼀种组件。它的使⽤使得UI层不直接 依赖于BLL层,⽽是依赖于中间的⼀个IBLL层,在程序运⾏的时候,通过MEF动态将BLL⾥⾯的实现
注⼊到UI层⾥⾯去,这样做的好处是减少了层与层 之间的耦合。这也正是⾯向接⼝编程⽅式的体现。
⼗四、⾃⼰写过JS组件吗?举例说明。
出现指数:三颗星
主要考点:此题考的js组件封装和js闭包的⼀些⽤法。⼀般来说,还是笔试出现的⼏率较⼤。
参考答案:⾃定义html的select组件
1//combobox
2    (function ($) {
3        $.fnbobox = function (options, param) {
4if (typeof options == 'string') {
5return $.hods[options](this, param);
6            }
7            options = .fnbobox.defaults, options || {});
8var target = $(this);
9            target.attr('valuefield', options.valueField);
10            target.attr('textfield', Field);
11            pty();
12var option = $('<option></option>');
13            option.attr('value', '');
14            (options.placeholder);
15            target.append(option);
16if (options.data) {
17                init(target, options.data);
18            }
19else {
20//var param = {};
21                BeforeLoad.call(target, option.param);
22if (!options.url) return;
23                $.getJSON(options.url, option.param, function (data) {
24                    init(target, data);
25                });
26            }
27
28function init(target, data) {
29                $.each(data, function (i, item) {
30var option = $('<option></option>');
31                    option.attr('value', item[options.valueField]);
32                    (Field]);
33                    target.append(option);
34                });
35                LoadSuccess.call(target);
36            }
37            target.unbind("change"); ("change", function (e) { if (Change) Change(target.val()); }); } $.hods = { getValue: function (jq) { return jq.val(); }, setValue: function (jq, param) { jq.val(param
38            };
39            })(jQuery);
调⽤的时候
1  $("#sel_search_orderstatus")bobox({
2                url: '/apiaction/Order/OrderApi/GetOrderStatu',
3                valueField: 'VALUE',
4                textField: 'NAME'
5            });
就能⾃动从后台取数据,注意valueField和textField对应要显⽰和实际值。
⼗五、⾃⼰写过多线程组件吗?简要说明!
出现指数:三颗星
主要考点:此题是两年前博主在携程的⼀次电话⾯试中遇到的,其他地⽅基本上没遇到过,其实到现在也不能理解当时⾯试官问这个问题的⽬的。但我想,此问题必有出处,估
计⾯试官是想了解你对多线程以及线程池等的理解深度。
知识点:
1、什么是⾯向对象?
⾯向对象说到底就是⼀种思想,任何事物都可以看作是⼀个对象。在有些⾯试题⽬中也称之为OOP(Object Oriented Programming)。分开来解读就是:
Object:对象
Oriented: ⾯向的
Programming:程序设计
⾯向对象就是把⼀个⼈或事务的属性,⽐如名字,年龄这些定义在⼀个实体类⾥⾯。存和取的时候直接使⽤存取实体类就把这个⼈的名字,年龄这些全部存了,这个实体类就叫
对象,这种思想就叫⾯向对象。
⾯向对象开发具有以下优点:
代码开发模块化,便于维护。
代码复⽤性强
代码的可靠性和灵活性。
代码的可读性和可扩展性。
2. 简述 private、 protected、 public、 internal 修饰符的访问权限。
答 . private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同⼀命名空间内可以访问,当前程序集内可以访问
3 .列举ASP.NET 页⾯之间传递值的⼏种⽅式。
答. 1.Request.QueryString
2.Request.Form
3.Session
4.Application
5.Cache
6.Cookie
7.Server.Transfer
8.Database
9.HttpContext的Item属性等
4.a=10,b=15,请在不使⽤第三⽅变量的情况下,把a、b的值互换
答: int a=a+b; int b=a-b;int a=a-b;
5.⽤做B/S结构的系统,您是⽤⼏层结构来开发,每⼀层之间的关系以及为什么要这样分层?
答:⼀般为3层:数据访问层,业务层,表⽰层。
数据访问层对数据库进⾏增删查改。
业务层⼀般分为⼆层,业务表观层实现与表⽰层的沟通,业务规则层实现⽤户密码的安全等。
表⽰层为了与⽤户交互例如⽤户添加表单。
优点: 分⼯明确,条理清晰,易于调试,⽽且具有可扩展性。
缺点: 增加成本。
6.能⽤foreach遍历访问的对象需要实现 ________________接⼝或声明________________⽅法的类型。
答:IEnumerable 、 GetEnumerator。
7.GC是什么? 为什么要有GC?
答:GC是垃圾收集器。程序员不⽤担⼼内存管理,因为垃圾收集器会⾃动进⾏管理。要请求垃圾收集,可以调⽤下⾯的⽅法之⼀:
<()
8.启动⼀个线程是⽤run()还是start()?
答:启动⼀个线程是调⽤start()⽅法,使线程所代表的虚拟处理机处于可运⾏状态,这意味着它可以由JVM调度并执⾏。这并不意味着线程就会⽴即运⾏。run() ⽅法可以产⽣必须退出的标志来停⽌⼀个线程。
9.是否可以继承String类?
答:String类是final类故不可以继承。
10.session喜欢丢值且占内存,Cookis不安全,请问⽤什么办法代替这两种原始的⽅法
答:redis 或者 memcache。当然,微软也提供了解决⽅案。iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以⽤Sate server或SQL Server数据库的⽅式。
11.IOC容器?
1. IOC即控制反转,是⼀种设计思想,在之前的项⽬中,当我们需要⼀个对象时,需要new⼀个对象,⽽IOC的设计思想是我们将需要的对象注⼊到⼀个容器中,就会获得我们所需要的资源 。
2. IOC和DI IOC是控制反转,DI是依赖注⼊,控制反转的解释有些模棱两可,⽽依赖注⼊就很明确,我们将需要的对象注⼊到容器中,获取所需要的资源。
3. IOC控制反转:正常情况下程序开发是上端调⽤下端,依赖下端,依赖倒置原则告诉我们,上端不要依赖下端,要依赖抽象,上端只依赖抽象,细节交给第三⽅⼯⼚(容器)来决定,这就是IOC,就是控制反转——使系统架构可以更稳定,⽀持扩展。
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,字符串。
21 .NET的错误处理机制是什么?
错误处理机制采⽤try->catch->finally结构,发⽣错误时,层层上抛,直到到匹配的Catch为⽌。
22.C#可否对内存进⾏直接的操作?
在下,引⽤了垃圾回收(GC)功能,它替代了程序员不过在C#中,不能直接实现Finalize⽅法,⽽是在析构函数中调⽤基类的Finalize()⽅法。
23. ADO.NET相对于ADO等主要有什么改进?
1:ado不依赖于ole db提供程序,⽽是使⽤托管提供的程序,
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是中⽤来跨越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 事件。
参考⽂献:blog.csdn/user2041/article/details/80591365

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。