最近一直处于找工作的状态,各种东奔西跑,遇到的笔试题也是各种各样。就遇到的面试题进行总结,督促一下自己好好学习吧,感觉任务量好大,于是决定不断更新。。。
先总结一下最近学习的一些知识:
SSH框架
一、Spring
1. 介绍Spring,首先需要介绍的是JavaBean,JavaBean指的是普通的Java类对象,但是满足如下的一些要求:
(1)必须有无参构造器;(方便继承子类)
(2)一定要实现序列化接;(IO相关,方便对象序列化)
(3)必须包括get()和set()方法
2. Spring容器的实例化, 即如何创建对象:
ApplicationContext继承自BeanFactory接口,加载工程classPath下的配置文件进行实例化:
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
Bean的作用域:单例(singleton)如JDBC,只需要一个Bean对象;
原型(prototype)每次创建的对象都是新的.
注意:只有在软件运行期间才有单例和原型的区别,编译期间不存在;
Spring的管理对象默认是单例的,主要是为了节省内存
Spring 在管理对象时,单例对象在容器初始化时创建,getXXX()时获得该对象;静态初始化
2. Spring是一个开源的轻量级框架,主要是为了简化企业级应用的开发,减少侵入;
3. Spring提供的IoC和AOP,可以降低组件之间的耦合度,实现解耦,提高可维护性;(耦合性:对象与对象之间的关系:组件关系,依赖关系,关联关系)
4. Spring的本质是管理对象,如何创建对象和维护对象之间的关系
5. Spring 容器: 管理JavaBean对象的生命周期:创建(init()),销毁(destory());维护Bean对象之间的关系
二、Spring的核心功能:
1. 控制反转:IoC(Inversion of Controller),是一种思想,依赖注入的思想,DI(Dependency Injection)是实现IoC的主要途径;
两种实现方式:(1)setter注入;(2)构造器注入(变量在构造器的参数中注入)
在创建任何的引用类型变量时,都要考虑其是何时初始化的,否则会出现NullPointerException,但控制反转会让Spring去创建对象,管理对象的生命周期,以及对象之间的关系
2.AOP面向方面编程
未完待续