轻松搞定AOP面试(外加几个面试题),从Spring热插件实战开始

今天有一哥们去面试 ,哥们说本身会ssh
面试官就问了几个spring的概念性的问题 ,哥们平时只专一于写代码,回来后一脸的无奈

本人总结了一些ssh常见的面试题 例举以下 强调在回答的时候不要光回答概念,要思惟扩散性的讲些相关的东西

spring 的优势?

1.下降了组件之间的耦合性 ,实现了软件各层之间的解耦
2.可使用容易提供的众多服务,如事务管理,消息服务等
3.容器提供单例模式支持
4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能
5.容器提供了众多的辅助类,能加快应用的开发
6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等
7.spring属于低侵入式设计,代码的污染极低
8.独立于各类应用服务器
9.spring的DI机制下降了业务对象替换的复杂性
10.Spring的高度开放性,并不强制应用彻底依赖于Spring,开发者能够自由选择spring的部分或所有java

Spring AOP相关的几道面试题

1. 说出Spring的通知类型有哪些?程序员

2. 谈谈目标对象实现接口与目标对象不实现接口有什么区别?面试

3. 请描述JDK动态代理和CGLI代理的区别?spring

4. 简述ProxyFactoryBean的做用是什么?编程

5. 叙述Spring中的自动代理的原理?服务器

5. 写出建立代理对象需指定的三要素是什么?架构

6. 写出代理的两种方式分别是什么?并发

7. 请简述:什么是AOP?框架

8. 简述AOP核心?ssh

9. 请叙述AOP事务的含义?

什么是DI机制?

依赖注入(Dependecy Injection)和控制反转(Inversion of Control)是同一个概念,具体的讲:当某个角色
须要另一个角色协助的时候,在传统的程序设计过程当中,一般由调用者来建立被调用者的实例。但在spring中
建立被调用者的工做再也不由调用者来完成,所以称为控制反转。建立被调用者的工做由spring来完成,而后注入调用者
所以也称为依赖注入。
spring以动态灵活的方式来管理对象 , 注入的两种方式,设置注入和构造注入。
设置注入的优势:直观,天然
构造注入的优势:能够在构造器中决定依赖关系的顺序。

什么是AOP?

  • 面向切面编程(AOP)完善spring的依赖注入(DI),面向切面编程在spring中主要表现为两个方面

1.面向切面编程提供声明式事务管理
2.spring支持用户自定义的切面

面向切面编程(aop)是对面向对象编程(oop)的补充,
面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面。
AOP从程序运行角度考虑程序的结构,提取业务处理过程的切面,oop是静态的抽象,aop是动态的抽象,
是对应用执行过程当中的步骤进行抽象,,从而得到步骤之间的逻辑划分。

aop框架具备的两个特征:

1.各个步骤之间的良好隔离性
2.源代码无关性

Spring IOC相关的一套面试题(选择题+简答题)

1. 下面关于spring描述错误的是:( )
A Spring支持可插入的事务管理器,使事务划分更轻松,同时无需处理底层的问题。
B Spring事务管理的通用抽象层还包括JTA策略和一个JDBC DataSource。
C 与JTA或EJB CMT同样,Spring的事务支持依赖于Java EE环境。
D Spring事务语义经过AOP应用于 POJO,经过XML或Java SE 5注释进行配置。

2. 下面选项哪一个不是Spring中接口注入的方式?( )
A 接口注入  
B 构造子注入  
C 设值注入  
D 指针注入

3. 下列关于Spring特性中IoC描述错误的是:( )
A IoC就是指程序之间的关系由程序代码直接操控。
B 所谓“控制反转”,是指控制权由应用代码转到外部容器,控制权的转移,
C IoC将控制建立的职责搬进了框架中;并把它从应用代码脱离开来
D 当使用Spring的IoC容器时只需指出组件须要的对象,在运行时Spring的IoC容器会根据XML配置数据提供给它。

简答题:

1. 请简述Spring的工做机制?

2. 请回答你为何用Spring的工做机制?

3. 请简述Spring是什么?

4. 简述spring的组成?

5.简述Spring容器提供了哪些功能?

6. 在Spring中,bean的注入有几种方式,各是什么?

7. 请简述:Spring bean的做用域?

8. 请叙述设值注入的优势?

9. 请叙述构造注入的优势?

10. 说出bean工厂建立bean的三种方式?

11. 请写出bean的生命周期的方法?

12. 请简述你对IOC的理解?

13. 请回答:IoC最大的好处是什么?

14. 简述IoC的类型?

15. Spring中依赖注入与传统编程之间的差异是什么?

硬实力

这里说的硬实力,也就是技术上的真实积累。

怎么来体现你的技术实力?我总的分为:技术深度和技术广度这两方面。技术广度通俗的讲,就是你熟悉该技术点的使用以及基本原理。通常面试官在面试首轮会问不少技术点,来考核你是否能正确使用。

准备不充分的面试,彻底是浪费时间,更是对本身的不负责(若是title很高,当我没说)。

今天给你们分享下在跳槽时须要准备的Java面试大纲,其中大部分都是面试过程当中的面试题,能够对照这查漏补缺,固然了,这里所列的确定不可能覆盖所有方式。

软实力

软实力在面试过程当中也尤其重要(有时候真的要更重要),主要是指和面试官的沟通,对一个问题的阐述方式和表达方式,逻辑思惟能力等。

面试过程全程微笑,项目描述须要严谨的表述,我的的优缺点基本要作到随口而出..等这些其实就是软实力的体现。

知己知彼、百战不殆,面试也是如此,针对于上面的面试问到的知识点我总结出了互联网公司java程序员在面试中涉及到的绝大部分架构面试题及答案作成了文档和架构视频资料免费分享给你们(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),但愿能帮助到您面试前的复习且找到一个好的工做,也节省你们在网上搜索资料的时间来学习,也能够分享动态给身边好友一块儿学习!

资料领取方式:关注+转发后,私信关键词 【架构资料】便可获取!

重要的事情说三遍,转发、转发、转发后再发私信,才能够拿到哦!

最后针对于互联网公司java程序员涉及到的绝大部分难题我作成了文档和架构视频资料免费分享给你们(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),但愿能帮助到且找到一个好的工做,也节省你们在网上搜索资料的时间来学习,也能够关注我一下之后会有更多干货分享。

资料领取方式:

关注+转发后,私信关键词 【资料或者java】免费获取!

重要的事情说三遍,转发、转发、转发后再发私信,才能够拿到!

相关文章
相关标签/搜索