程序员面试题及答案.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

什么是设计模式?

设计模式是指在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。

说出你所知道的设计模式?

简单工厂,外观模式,适配器模式,单例模式,工厂方法模式,抽象工厂模式,生成器模式,原型模式,中介者模式,代理模式,观察者模式,命令模式,迭代器模式,组合模式,模板方法模式,策略模式,状态模式,备忘录模式,享元模式,解释器模式,装饰模式,职责链模式,桥接模式,访问者模式。

接口是用来干什么的?

通常用接口来定义实现类的外观,也就是实现类的行为定义,用来约束实现类的行为。

使用接口的好处

由于外部调用和内部实现被接口隔离开了,那么只要接口不变,内部实现的变化就不会影响到外部应用,从而使得系统更灵活,具有更好的扩展性和可维护性

什么是OOP?OOP有什么特性?使用OOP用什么好处?

oop是面向对象编程,面向对象编程是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组、合而成。好处是易用性、质量高、效率高,易扩展。

为什么类要高内聚低耦合?

目的是使程序模块的可重用性、移植性大大增强。

类的核心特性有哪些?

封装、继承和多态。

说一下http状态码200,403,404,500分别是什么意思?

200,请求成功;403,服务器接收到请求但拒绝执行;404,没有找到被请求资源;500,服务器内部错误。

什么是MVC框架?

MVC开始是存在于桌面程序中的,M是指业务模型,V是指\t/item/MVC%E6%A1%86%E6%9E%B6/_blank用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。

简单说下数据库优化的思路。

SQL语句优化;索引优化;数据库结构优化;服务器优化。

什么事存储过程?

存储过程是用户自定义一系列SQL语句的集合,以一个名称存储并作为一个单元处理。

是否了解微服务构架模式?请简单描述一下。

(1)将应用程序分解成一套较小的互连服务。

(2)一个服务通常实现了一组不同的特性或功能,每一个微服务都是一个迷你应用。

(3)一些微服务会暴露一个供其他微服务或应用客户端消费的API。另一些其他微服务可能实现了一个webUI。

微服务构架模式的优缺点?

优点:(1)它解决了复杂问题。它把可能会变得庞大的单体应用程序分解成一套服务。虽然功能数量不变,但是应用程序已经被分解成可管理的块或者服务。使用微服务架构模式,个体服务能被更快地开发,并更容易理解与维护。

(2)这种架构使得每个服务都可以由一个团队独立专注开发。开发者可以自由选择任何符合服务API契约的技术。

(3)微服务架构模式可以实现每一个微服务独立部署。微服务架构模式使得每个服务能够独立扩展。您可以仅部署满足每个服务的容量和可用性约束的实例数目。

缺点:(1)由于微服务是一个分布式系统,这种方式使得整体变得复杂。开发者需要选择和实现基于消息或者RPC的进程间通信机制。此外,由于目标请求可能很慢或者不可用,他们必须要编写代码来处理局部故障。

(2)测试微服务应用程序也很复杂。往往需要启动所有相互依赖的微服务。

(3)跨越多服务变更也很繁琐,在微服务中您需要仔细规划和协调出现的变更至每个服务。例如,您需要更新服务C,然后更新服务B,最后更新服务A。幸运的是,大多数时间变更只会影响一个服务。

(4)要成功部署微服务应用程序,需要求开发人员能高度控制部署方式和高度自动化。

举一个微服务构架的例子?

例如,以我们的出租车为例,一个是乘客的应用,一个是司机的应用。这使得它更容易地为特定的用户、司机、设备或者专门的用例部署不同的场景。

每个后端服务暴露一个RESTAPI,大部分服务消费的API由其他服务提供。例如,DriverManagement使用了Notification服务器来通知一个可用司机一个可选路程。UI服务调用了其他服务来渲染页面。服务也可以使用异步、基于消息的通信。一些RESTAPI也暴露给移动端应用以供司机和乘客使用。然而,应用不能直接访问后端服务。相反,他们之间的通信是由一个称为API网关(APIGateway)的中介负责。API网关负责负载均衡、缓存、访问控制、API计量和监控,可以通过使用NGINX来实现。

何为代码重构?说说自己的理解。

代码重构即对软件内部结构的一种调整,在不改变软件可观察行为的前提下,提高代码可理解性,降低其修改成本。

代码重构的目的?

重构改进软件设计。

重构使软件更容易理解。

重构帮助找到bug。

重构提高编程速度。

何时才是代码重构的最佳时机?

三次法则:第一次做一个功能,只管去做;第二次

文档评论(0)

A~下一站守候 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档