Java面试题精选
Java基础
框架
谈谈你对Spring的理解
Spring是一个轻量级的开源的J2EE框架。它是一个容器框架,用来装javabean Ciava对象),中间层框架(万能胶)可以起一个连接作用,比如说把Struts和hibermate粘合在一起运用,可以让我们的企业开发更快、更简洁。
- Spring是一个轻量级的控制反转 (IOC)和面向切面 (AOP)的容器框架;
- 从大小与开销两方面而言Spring都是轻量级的。
- 通过控制反转(IOC)的技术达到松耦合的目的
- 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发;
- 包含并管理应用对象(Bean)的配置和生命周期,这个意义上是一个容器。
- 将简单的组件配置、组合成为复杂的应用,这个意义上是一个框架
谈谈你对AOP的理解
系统是由许多不同的组件所组成的,每一个组件各负责一块特定功能。除了实现自身核心功能之外,这些组件还经常承担着额外的职责。例如日志、事物管理和安全这样的核心服务经常融入到自身具有核心业务逻辑的组件中去。这些系统服务经常被称为横切关注点,因为它们会跨越系统的多个组件。
当我们需要为分散的对象引入公共行为的时候,OOP则会显得无能为力。也就是说,OOP允许你自己定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。
日志代码往往水平地散布在所有对象层次中。而与它所散布到的对象的核心功能毫无关系。
在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。
- AOP:将程序中的交叉业务逻辑(比如安全,日志,事物等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。AOP可以对某个对象或者某些对象的功能进行增强,比如对象中的方法进行增强,可以在执行某个方法之前额外的去做一些事情,在某个方法执行之后额外的做一些事情。