最新2020IT面试笔试题目
  spring boot面试题及答案
  1、什么是 Spring Boot?
  传统的 SSM/SSH 框架组合配置繁琐臃肿,不同项目有很多重复、模板化的配置,严重降低了 Java 工程师的开发效率,而 Spring Boot 可以轻松创建基于 Spring 的、可以独立运行的、生产级的应用程序。通过对 Spring 家族和一些第三方库提供一系列自动化配置的 Starter,来使得开发快速搭建一个基于 Spring 的应用程序。
  Spring Boot 让日益臃肿的 Java 代码又重回简洁。在配合 Spring Cloud 使用时,还可以发挥更大的威力。
  2、Spring Boot 中如何解决跨域问题?
  跨域可以在前端通过 JSONP 来解决,但是 JSONP 只可以发送 GET 请求,无法发送其他
类型的请求,在 RESTful 风格的应用中,就显得非常鸡肋,因此我们推荐在后端通过(CORS,Cross-origin resource sharing) 来解决跨域问题。
  这种解决方案并非 Spring Boot 特有的,在传统的 SSM 框架中,就可以通过 CORS 来解决跨域问题,只不过之前我们是在 XML 文件中配置 CORS ,现在则是通过 @CrossOrigin 注解来解决跨域问题。
  3、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
  Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。
  application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。
  bootstrap 配置文件有以下几个应用场景。
  ①使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
  ②一些固定的不能被覆盖的属性;
  ③一些加密/解密的场景;
  4、运行Spring Boot的方式
  ①直接执行main方法运行;
  ②用Maven / Gradle插件运行;
  ③打成jar包,通过java -jar命令直接运行。
  5、Spring Boot自动配置的原理
  在Spring程序main方法中 添加@SpringBootApplication或者@EnableAutoConfiguration。会自动去maven中读取每个starter中的spring.factories文件,该文件里配置了所有需要被创建spring容器中的bean。
  Spring Boot 在启动时扫描项目所依赖的JAR包,寻包含spring.factories文件的JAR。
  根据spring.factories配置加载AutoConfigure类。
  根据@Conditional注解的条件,进行自动配置并将Bean注入Spring Context。
  关于性能测试面试题及答案
  1、如何识别系统瓶颈?
  从TPS指标分析,TPS即系统单位时间内处理事务的数量。当前随着用户数的增长期系统每秒可处理的事务数是否也会增长。
  2、如何发现数据库的相关问题?
  ①通过运行某些相应的已获取的SQL语句,判断是否由于数据库索引所导致的事务响应过长的问题发生。
  ②通过实时监控工具(nmon等)监控分析:Ⅰ.系统在运行过程中其CPU是否稳定运行或CPU耗用是否过高;Ⅱ.在系统运行过程中其内存是否存在内存泄漏现象;
  3、think_time的作用是什么?
  ①降低当前运行时压力,环节对应用服务器所造成的压力;
  ②模拟真实生产用户操作,考察对服务器所造成的影响。
  4、进行参数化的目的是什么?
  ①减少脚本的大小;
  ②便于脚本的维护,从而更加真实的模拟生产环境的数据。
  5、容量测试方法中为什么要以逐步递增的方式进行?
  虚拟用户数随着负载时间的延长而增加,可以帮助确定系统响应时间减慢的准确时间以及准确的用户数。
  6、假设在测试过程中某些事务的响应时间过长,但分析应用服务、数据库以及网络都属于正常现象,问题可能出现的原因有哪些?
  ①LoadRunner客户机器是否已无法承载当前运行压力导致LoadRunner无法及时获取从服务端返回的信息;
  ②Tink_time是否已忽略;
  ③确定当前被测系统架构,是否为在每次测试过程中清楚缓存所导致。
  Shell 脚本面试题及答案
  一、Shell脚本是什么、它是必需的吗?
  一个Shell脚本是一个文*件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文*件(Shell脚本)来完成这些日常工作任务。
  二、什么是默认登录shell,如何改变指定用户的登录shell?
  在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的。使用chsh命令可以改变默认的shell。
  三、可以在shell脚本中使用哪些类型的变量?
  在shell脚本,我们可以使用两种类型的变量:①系统定义变量;②用户定义变量。
  系统变量:是由系统系统自己创建的。这些变量通常由大写字母组成,可以通过“set”命令查看。
  用户变量:是由系统用户来生成和定义,变量的值可以通过命令“echo $变量名”查看。
  四、如何将标准输出和错误输出同时重定向到同一位置?
  这里有两个方法来实现:
  方法一:21 (如# ls /usr/share/ 21 )
  方法二: (如# ls /usr/share/ )
  五、shell脚本中“$?”标记的用途是什么?
  在写一个shell脚本时,如果你想要检查前一命令是否执行成功,在if条件中使用“$?”可以来检查前一命令的结束状态。
  六、如何在后台运行脚本?
  在脚本后面添加 “”。
  七、"chmod 500 script" 做什么?
笔试题  使脚本所有者拥有可执行权限。
  八、"" 做什么?
  重定向输出流到文件或另一个流。
  九、 和 有什么区别
  - 希望脚本在后台运行的时候使用它;
  - 当前一个脚本成功完成才执行后面的命令/脚本的时候使用它。
  十、什么时候要在 [ condition ] 之前使用 “if”?
  当条件满足时需要运行多条命令的时候。