【面试题解析】--20200112面试题解析

1. 请说出SpringBoot的自动配置原理

SpringBoot中的自动配置主要在于@SpringBootApplication底层使用@EnableAutoConfiguration注解开启了自动配置,然后@EnableAutoConfiguration注解底层使用@Import注解导入AutoConfigurationImportSelector自动配置导入选择器,SpringBoot在启动时会在类路径下查找MATA-INF/spring.factories文件,并将文件中的自动配置类导入,然后将满足注解@Conditional的自动配置类导入。

2. 为什么说Java语言是跨平台的?

Java的一个目标是一次编写处处运行,并且Java语言的运行时需要JVM(Java虚拟机的支持),基本上在各大平台上都有对应的JVM版本所以Java语言是跨平台的。Java语言的运行需要先经历三个步骤:

  1. 将Java代码成可以执行的字节码.class结尾的文件。
  2. 在命令行使用java 文件名.class执行,这个时候JVM会将class字节码转换为指定平台的字节码。
3. Spring由那些模块组成?

Spring共有七大模块:

  1. SpringCoreSpringCoreSpring中最基础的模块,这里提供了最经典的工厂模式的实现用于解决程序单例性的需求,它允许我们从程序中分离出依赖。
  2. SpringContextSpringContext是建立在core模块的基础上的,它的实现还基于Beans封装包,并且在Context模块中添加了i18n国际化的支持。
  3. SpringDaoSpringDaoJDBC访问数据库进行了封装,它提供了一种简易的方式访问数据库,它并不是对JDBC的简易封装SpringDao添加了声明式事务的概念,它允许我们以声明的方式处理事务。
  4. SpringAOPAOP模块是面向切面编程的实现,它允许我们将横切关注面中的公共代码抽取出来,它允许我们以声明式的方式将这些模块运用到需要某项功能的业务方法中,如上文提到的声明式事务。
  5. SpringORMSpringORM是对orm框架的一个整合,其中包括了HibernateMyBatis等。
  6. SpringWebSpringWebSpring用于开发Web应用程序而提供的,它可以使得Spring能够很容易的与其他框架整合比如WebWorkStrus2等,并且Spring能够将对象注入这些框架中,还能够在这些框架前后添加拦截器。
  7. SpringWebMVCWebMVC模块提供了一种分离式的方法开发Web应用程序,它不仅仅是传统MVC的实现,它允许我们以声明式的方式将对应的请求映射到指定的处理方法上。
4. Spring、SpringMVC、SpringBoot之间的区别是什么?
  • Spring框架的核心是AOP,即面向切面编程,它允许我们将公共代码抽取出来,使用Spring开发出来的代码是松散耦合的并且使易于测试的。
  • SpringMVC是Spring提供的一种允许我们以分离式的方式开发Web应用程序。
  • Spring、SpringMVC的使用过程中较为繁琐的地方在于他们都有大量的配置需要编写,并且稍不注意就可能出错,而SpringBoot提供了大量的Stater启动器用以解决以上问题,SpringBoot是一种快速使用Spring框架的一种方式。
5. String、StringBuffer、StringBuilder之间的区别是什么?
  • String是固定大小的字符串数据。
  • StringBuffer、StringBuilder都是可以动态构造的字符串数据。
  • String实现equals方法,StringBuffer与StringBuilder没有实现。
  • StringBuffer是线程安全的,StrngBuilder不是线程安全的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值