面试题 java Development

这篇文章翻译自一位外国友人的关于面试后端程序员的文章,我比较喜爱这篇文章。一是因为它极大的拓宽了我的视角,另一方面是其中的一些问题非常具有启发性。不仅对于面试者,对于面试官来说也是个不错的参考。于是迫不及待的翻译了一下,给各位看官做个参考。

这篇文章中,许多问题我并没有完全理解,所以翻译可能存在不准确的地方。如果有读者发现有一些翻译有误或者不好的地方,请不吝赐教。

原文参见 [@arialdomartini](https://github.com/arialdomartini)的: [Back-End Developer Interview Questions](https://github.com/arialdomartini/Back-End-Developer-Interview-Questions)

以下是原文翻译。

后端开发面试题

在面试的时候,我并不特别喜欢问一些技术性的问题。我更喜欢的方式是这样的: 和面试者坐在一起,看一些实际的代码,解决一些实际的问题。并且用一整天的时间,让团队所有成员轮流和面试者进行结对编程。虽然如此,但是一些技术问题仍然可以用来很好地启动一段有深度的谈话,能够让面试者和面试官相互都有更加深入的了解。

这个仓库包含了可以用来考核面试者的一系列后端面试题。但绝不是说,面试官必须用每个面试题来考核面试者(这样可能要耗费好几个小时)。根据你期望面试者拥有的技能,从这个列表中有选择的挑一些题目,可以帮助你在特定技能上考核面试者。

应当承认的是,这个项目的灵感来自于[@darcyclarke](https://github.com/darcyclarke)的文章[Front-end Job Interview Questions](https://github.com/darcyclarke/Front-end-Developer-Interview-Questions)

注意:

请记住,这些面试题中有许多问题是开放式的,能引导讨论一些有趣的问题。相比那些有直接答案的问题来说,这种问题能够让你对面试者的能力有更多的了解。再一次强调,我认为仅仅是问问题是不够的。要通过与面试者较长时间的结对编程来完成面试: 这是你们相互了解对方的风格和方法、让面试者了解未来工作的最佳手段之一。

目录

通用问题:

开放式问题:

设计模式相关问题:

代码设计相关问题:

语言相关问题:

web相关问题:

数据库相关问题:

非关系型数据库相关问题:

代码版本管理相关问题:

并发问题:

分布式系统相关问题:

软件生命周期和团队管理相关问题:

逻辑和算法相关问题:

软件架构相关问题:

面向服务架构(SOA)和微服务(Microservice)相关问题:

安全相关问题:

比尔盖茨式问题:

代码示例问题: