腾讯软件开发笔试题

这是一位应聘腾讯软件开发-应用开发方向(.net方向)的求职者经历的笔试,请看他为大家分享的经验:

  一、笔试

  数据库(较多)、编译原理(一题)、操作系统(主要)、数据结构(主要)

  二、一面

  SQL语句::求平均分在60分以上的同学学号和平均分数

  两个水桶、一个5L、一个6L,叫你称3L

  如何统计全国的便利店的数量?

  你在看电视,突然电视机黑了,你怎么办?

  你住在荒郊野岭的一个旅店里,三更半夜,你想吃烧烤,你会怎么做?

  事务是什么?

  范式是什么?

  说一下你对面向对象的理解。

  类和接口有什么区别?

  类和抽象类有什么区别?

  系统架构(三层架构的劣势是什么?)

  设计模式(五大设计原则、工厂模式)

  你看过的专业课外书有哪些?

  你的五年规划?

  CLR 如何与底层交互?(这是.net底层知识)

  Httphandler和 httpmoduler 的区别?这是.net底层知识)

  三、二面(时间:9月28号)

  你的五年规划?

  关于应付团队成员矛盾、项目需求矛盾、团队责任心等问题的提问。

  1) 你的队员极力反对你的意见,你怎么办?

  2) 当你觉得项目的需求有问题的时候,你会怎么办?

  3) MS SQL的视图功能并不强大,你如何处理?

  4) 你如何释放工作压力?

  (突出点:语言表达能力、思维逻辑、团队沟通、责任心)

  经验:

  三层架构的劣势:

  1. UI层逻辑过于强大。

  2. 逻辑层与数据库访问层一般是一一对应的,所以逻辑层会形同虚设。

  3. 难以测试,把UI层撤掉,底层无法测试(测试用例全在UI层)

  4. 分布式存储各层,容易遭到攻击(获取UI层后,底层所有的信息都将曝露)

  工厂模式的本质:

  对象的创建,解决new 的问题(依赖注入是其中一个应用)

  五大设计原则:

  1. 开放封闭原则(OCP原则)

  2. 里氏代换(父类引用出现的地方可以用子类对象来代替)

  3. 依赖倒转(抽象不依赖于具体,具体依赖于抽象)

  4. kiss原则(keep it sample)

  5. 不要和陌生人说话(单一职责,模块化)

  CLR 如何与底层交互:

  CLR 类似于java 的虚拟机,是应用程序 与操作系统 之间 的一个中间件,在CLR 中有 CTS JIT CLS CIL CLI 等,运行时,CLR 通过加载程序集到内存中,生成类,创建对象,调用方法,生成代码,通过JIT 编译成为CLR 的中间代码,然后CLR把中间代码转换成为可执行的机器代码。

  .net frameword 通过 CLR 拥有跨语言的特点 (因为有CLS 通用语言规范)可以让各种支持的语言(例如C++ 、C# 、 J# 等)进行相互通信、调用等,这与java虚拟机可以跨平台的特点有所不同(.net frameword 跨语言,不过目前可以通过在 .net frameword 下多加一层 中间层 (mono) 可以实现跨平台的操作,即.net 编写的程序 可以发布在linux 上,而不仅仅是windows上)

  Httphandler和 httpmoduler 的区别

  http 请求的通常为静态页面 或者动态页面 ,在asp.net 中 ,当客户端的请求到达的时候,需要通过一个管道(好像有18个管道)来进行处理,httpmoduler 就是用来获取请求消息,过滤请求消息用的,一般静态的页面都会都httpmoduler 来处理,而Httphandler(好像是第8个或者第11个管道)是真正处理请求的地方。在IIS中,如果客户端请求是动态页面的话(JSP、ASP、 ASPX等)则需要ISAPI 对应的处理程序(一般为DLL )来处理,而这个处理过程就是由Httphandler 中的processrequest 函数来进行处理 的,处理完毕以后,将生成相应的html页面返回。

  你的队员极力反对你的意见,你怎么办?

  1. 比较自己和队友的意见如何,优劣的比较。

  2. 各自实现出来(可以只是原型、核心部分),比较优劣。

  3. 队员投票。

  4. 请求上级,上级一般比我们经验丰富。

  当你觉得项目的需求有问题的时候,你会怎么办?

  1. 自己思考需求是否要进行改动。

  2. 队员之间讨论。

  3. 请求上级

  团队和项目问题时:

  项目要说清楚,框架,系统特点要突出。

  团队问题主要考你的责任心,独立思考的能力,团队协作能力。

  回答方法:先从自身入手,自己要先思考,再到队员讨论,投票,最后到上级。

  视图的优缺点是什么?

  优点 :

  (1)视图能简化用户的操作

  (2)视图机制可以使用户以不同的方式查询同一数据 (一个基本表可对应多个视图)

  (3)视图对数据库重构提供了一定程度的逻辑独立性 (视图与应用对应,变换灵活)

  (4)视图可以对机密的数据提供安全保护 (可以做到混淆视听的效果)

  缺点:

  1、性能:如果视图连接复杂,查询起来需要花费时间。

  2、更新限制:视图是只读的,更新时需要更新原表,数据更新对用户来说很麻烦。

你可能感兴趣的:(软件开发)