某公司.Net中级开发面试题(1)

前端

 

1.使用jQuery检查<input type="hidden" id="id" name="id" />元素在网页上是否存在,正确的代码是(C)

  1. if($("#id")) {}
  2. if($(".id")) {}
  3. if($("#id").length>0) {}
  4. if($(".id").length>0) {}

 

2.谈谈对Post 请求和Get 请求的理解;二者如何选取应用!

答:

GET传递的参数只能带URL后面,文本格式QueryString,各浏览器一般有长度限制,一般认为是2083,如果有中文字符更短。提交到服务器端的数据量小。

POST可以传递application/x-www-form-urlencoded的类似QueryString、multipart/form-data的二进制报文格式(支持文件信息嵌入报文传输)、纯文本或二进制的body参数。提交到服务器端的数据量大。

3.请谈谈Vue和Jquery的区别。

答:

 jQuery是使用选择器()选取DOM对象,对其进行赋值、取值、事件绑定等操作,其实和原生的HTML的区别只在于可以更方便的选取和操作DOM对象,而数据和界面是在一起的。比如需要获取label标签的内容:)选取DOM对象,对其进行赋值、取值、事件绑定等操作,其实和原生的HTML的区别只在于可以更方便的选取和操作DOM对象,而数据和界面是在一起的。比如需要获取label标签的内容:(“lable”).val();,它还是依赖DOM元素的值。

Vue则是通过Vue对象将数据和View完全分离开来了。对数据进行操作不再需要引用相应的DOM对象,可以说数据和View是分离的,他们通过Vue对象这个vm实现相互的绑定。这就是传说中的MVVM。

 

数据库

 

  1. 关于SQL的执行顺序,正确的是(A)
  1. FROM->WHERE->GROUP BY->HAVING->SELECT->DISTINCT->ORDER BY->TOP
  2. SELECT->FROM-> WHERE->DISTICT->GROUP BY->HAVING->TOP ->ORDER BY
  3. HAVING -> GROUP BY ->FROM->WHERE-> SELECT-> ORDER BY->DISTINCT->TOP
  4. WHERE->FROM>HAVING->GROUP BY-->SELECT->DISTINCT->TOP->ORDER BY

 

2.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。

 

答:解1:  select top 10 * from A where id not in (select top 30 id from A)

 

    解2:  select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)

3.简单说明数据库建立索引的优缺点。

缺点:

第一,创建索引和维护索引要耗费时间,这种时间随着数据 量的增加而增加。

第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。

第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

 

优点:

第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。

第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能 

.NETCORE

 

1.dot net core跟dot net比较有哪些更好的地方?

第一是跨平台,它可以运行在三大操作系统上面,windows, Linux和MAC。

 

第二是对架构本身安装没有依赖,因为所有的依赖都跟程序本身在一起。

 

第三是dot net core处理请求的效率更高,能够处理更多的请求。

 

第四是dot net core有更多的安装配置方法。

2..如何在controller中注入service?

 

在config services方法中配置这个service。

在controller的构造函数中,添加这个依赖注入。

3.描述一下依赖注入后的服务生命周期?

 

在dot net core中,我们不需要关心如何释放这些服务, 因为系统会帮我们释放掉。有三种服务的生命周期。

 

单实例服务, 通过add singleton方法来添加。在注册时即创建服务, 在随后的请求中都使用这一个服务。

 

短暂服务, 通过add transient方法来添加。是一种轻量级的服务,用于无状态服务的操作。

 

作用域服务,一个新的请求会创建一个服务实例。使用add scoped方法来添加。

.NetFramework

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

答. 1.使用QueryString,  如....?id=1; response. Redirect()....

 

2.使用Session变量

 

3.使用Server.Transfer

 

4.使用Application

 

5.使用Cache

 

6使用HttpContext的Item属性

 

7.使用文件

 

8.使用数据库

 

9.使用Cookie。

 

2.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?

 

答:使用MVC模式分层

 

一般为3层

数据访问层,业务层,表示层。

 

数据访问层对数据库进行增删查改。

 

业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。

 

表示层为了与用户交互例如用户添加表单。

 

优点:  分工明确,条理清晰,易于调试,而且具有可扩展性。

 

 

3.MVC  Filter的特点、思想Filter有哪几种注册方式。

 

答:Filter思想:AOP面向切面编程的思想,指的是:在不破坏原有的代码的情况下,可以动态的扩展功能。

 

三种注册方式:方法注册,控制器注册、全局注册;

 

 

扩展题

 

1.什么是跨域,为什么会出现跨域问题?怎么解决?

答:因为同源策略;跨域问题来源于JavaScript的同源策略,即只有 协议+主机名+端口号(如存在)相同,则允许相互访问。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对JS和ajax的,html本身没有跨域问题,比如a标签、script标签、甚至form标签(可以直接跨域发送数据并接收数据)等

第一种,服务器执行请求过来以后,允许你跨域;其实服务器设置响应头:response.setHeader("Access-Control-Allow-Origin", "*")

第二种,jsonp,jsonp的方式,注意这种方式只能发送get请求,就算指定为post,最后发送的还是get,且跟上面方式一样,也需要服务器的配合支持。jsonp发送的并不是ajax请求;利用动态创建一个script标签,因为script标签是没有同源策略限制的,是可以跨域的; 把这个script标签的src指向我们请求的服务端地址,这个地址会携带一个参数:callback ,一个回调函数,服务端会把数据通过这个回调函数返回给客户端,但是客户端没有这个函数怎么接收呢?所以在发送请求之前,要在全局(window)注册这样一个方法,利用这个方法,来获得数据; 这个回调函数名需要跟服务端约定好,是一致的。

 

2.如果页面中图片太多,从性能上来说,如何提高性能?

答:

1.方案一:将图片服务和应用服务分离(从架构师的角度思考)

2. 图片懒加载:像淘宝或者京东这样的APP页面上有很多图片,当我们滑到下一屏时下一屏的图片才会加载,这就采用了图片懒加载的方式.

3. css Sprites:当网站或者APP有大量小icon,如果上传到图片服务器比如CDN, 要加载所有这些小icon将增加大量请求,而CDN是按流量收费的,这无疑将增加很多成本.

CSS Sprites 技术早已不新鲜,就是将这些小icon合并成一张图片,只需要加载一次,每次通过background-position来控制显示icon,这样就可以节约大量请求,节约成本.

 

3. 谈谈你在之前工作中,有关于后端性能优化的经验!

答:代码层面优化,组建高性能Sql,

使用内存数据库;

使用RDD;

增加缓存;

使用SSD;

使用多线程;

分布式部署程序;

 

 

  • 0
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值