黑马程序员技术交流社区

标题: [上海校区] Spring面试题一 [打印本页]

作者: 默默呜呜    时间: 2020-3-23 10:56
标题: [上海校区] Spring面试题一
本帖最后由 默默呜呜 于 2020-3-26 16:23 编辑

Spring面试题一
0.题型划分
      怎么样做到心里不慌? 一是要经历多次历练 ,二是学会问题的总结。我个人对面试题大致划分了题型:  和平题, 实在题,硬记题,攻击题, 绝望题。 和平题:  看似和平  其实是王炸  不好回答; 实在题: 比较实惠,容易答到点; 硬记题:当前不能消化,只能暂时记住 ;攻击题: 主要是些场景题,遇到就能答上; 绝望题:题目站的角度比较大,一般很难回答。
1.和平题
什么是IOC?
        答:咋一看,还以为问springIOC ,其实不是 ,这个问题 ,问的是 IOC思想 ,我们且看  大牛如何回答这个问题,简单地说:IoC 是反转控制,类似于好莱坞原则,主要有依赖查找和依赖注入实现。真的牛,就是不明白 ,IOC 是个啥。  我个人体会,浅谈理解, 大牛是回答没有直接解释 什么是IOC  ,而是找了个相似的思想来阐述,这个思想就是好莱坞原则。我们来看下,好莱坞原则是啥 ,你不要打电话给我 ,我打电话给你。 细细体会 确实有点反转控制的味道。  大牛又举例 这个思想实现方式有两种依赖查找和依赖注入。那么你又会问 依赖查找和依赖注入是啥,且看下题。
Spring中的依赖注入是什么?
       答:依赖注入作为控制反转(IOC)的一个层面,在这个概念中,你不用创建对象而只需要描述如何创建它们。你不必通过代码直接的将组件和服务连接在一起,而是通过配置文件说明哪些组件需要什么服务。之后IOC容器负责衔接。 有没有醍醐灌顶的感觉。
2.实在题
Spring Framework 有哪些核心模块?
     答:spring-core: spring 基础API模块, 如资源管理
​          spring-beans: spring Bean相关,如依赖查找 依赖注入
​          spring-aop: spring AOP 处理,如动态代理
​          spring-context:  如 注解驱动 模块驱动
​          spring-expression: spring 表达式语言模块
       如果你只回答了 spring-core、sprig-beans、 spring-aop、 spring-context、 spel,只能说了解
       如果你不仅回答了 上面内容,你还回答了 模块一些功能 ,说明你有点熟悉
       如果你上面都回答了,但是你还能举例 源码中一些相关类,说明你还真是熟悉很多补冲知识, spring到底有多少模块?
AOP有哪些实现方式?
      答 : AOP实现的关键在于 代理模式,AOP代理主要分为静态代理和动态代理。静态代理的代表为AspectJ;动态代理则以Spring AOP为代表。
       AspectJ是静态代理的增强,所谓静态代理,就是AOP框架会在编译阶段生成AOP代理类,因此也称为编译时增强,他会在编译阶段将AspectJ(切面)织入到Java字节码中,运行的时候就是增强之后的AOP对象。
      Spring AOP使用的动态代理,所谓的动态代理就是说AOP框架不会去修改字节码,而是每次运行时在内存中临时为方法生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调原对象的方法。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2