HTML5技术

面试干货——年底干货大放送,你准备好了吗? - 懒得安分(2)

字号+ 作者:H5之家 来源:博客园 2015-12-30 17:07 我要评论( )

public class Singleton{ Singleton uniqueInstance; locker = new object (); Singleton(){} 定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点 Singleton GetInstance(){ (uniqueInstanc

   public class Singleton { Singleton uniqueInstance; locker = new object(); Singleton() { } 定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点 Singleton GetInstance() {(uniqueInstance == null) { lock (locker) { (uniqueInstance == null) { uniqueInstance = new Singleton(); } } } return uniqueInstance; } }

单例模式确保一个类只有一个实例,并提供一个全局访问点,它的使用场景比如任务管理器整个系统中应该只有一个把,再比如操作文件的对象,同一时间我们只能有一个对象去操作文件吧。最重要的,比如我们项目中用得非常多的功能→日志记录,在一个线程中,记录日志的对象应该也只能有一个吧。单例模式的目的是为了保证程序的安全性和数据的唯一性。或者你也可以结合你使用的其他设计模式来说明。

六、IIS的工作原理?

出现指数:四颗星

主要考点:此题主要考的是.net framework和IIS是如何结合呈现页面的。这是一个有点复杂的过程,面试的时候不可能说得完整,那么我们就抓住几个关键点说说就可以。其实博主也不能完全理解这个过程,今天正好借这个机会温习下。

参考答案:

1、当客户端发送HTTP Request时,服务端的HTTP.sys(可以理解为IIS的一个监听组件) 拦截到这个请求;

2、HTTP.sys 联系 WAS 向配置存储中心请求配置信息。

3、然后将请求传入IIS的应用程序池。

4、检查请求的后缀,启动aspnet_isapi.dll这个dll,这个dll是.net framework里面的,也就是说到这一步,请求进入了.net 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数据库、尽量避免一次取出大量数据放在内存中(容易内存溢出)、优化算法等。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 从国企到阿里的面试经历(一) - 劼哥stone

    从国企到阿里的面试经历(一) - 劼哥stone

    2017-05-02 16:00

  • 聊聊这几个星期的面试感受吧,内容太长。。慢慢更新吧 - 秦随境迁

    聊聊这几个星期的面试感受吧,内容太长。。慢慢更新吧 - 秦随境迁

    2017-04-13 13:03

  • 也谈谈我面试的经历 - 朝向远方

    也谈谈我面试的经历 - 朝向远方

    2017-04-06 15:00

  • 记一次前端面试经历 - 渔歌

    记一次前端面试经历 - 渔歌

    2017-03-10 15:00

网友点评