题目
- 谈谈你对AOP的理解
- 谈谈你对IOC的理解
- BeanFactory和ApplicationContext的区别
- 解释下Spring支持的几种bean的作用域
- spring框架中的单例Bean是安全的吗?
- 简述几种排序(假如是一个从小到大的排序)
个人理解
- 谈谈你对AOP的理解
AOP的中文意思是面向切面,可以将程序中的交叉逻辑封装成切面,然后注入到对象中(业务逻辑),也可以对某些对象或方法进行增强。 - 谈谈你对IOC的理解
IOC的中文意思是控制反转,IOC容器里面存有各种对象,当对象A需要使用到对象B是,IOC容器会将对象B注入到A中,实现控制反转。 - BeanFactory和ApplicationContext的区别
ApplicationContext是BeanFactory的子接口,可以提供更为完善的方法。BeanFactory采用的是延迟加载的形式来加载Bean,使用到的时候才会创建,而ApplicationContext是在容器创建的时候就创建所有Bean,有利于启动的时候就可以检查异常,缺点是启动的时候比较慢,占用较多的内存空间。 - 解释下Spring支持的几种bean的作用域
singleton:默认,每个容器中只有一个bean的实例,单例的模式由BeanFactory自身来维护。该
对象的生命周期是与Spring IOC容器一致的(但在第一次被注入时才会创建)。 prototype:为每一个bean请求提供一个实例。在每次注入时都会创建一个新的对象
request:bean被定义为在每个HTTP请求中创建一个单例对象,也就是说在单个请求中都会复用 这一个单例对象。
session:与request范围类似,确保每个session中有一个bean的实例,在session过期后,bean 会随之失效。
application:bean被定义为在ServletContext的生命周期中复用一个单例对象。
websocket:bean被定义为在websocket的生命周期中复用一个单例对象。
global-session:全局作用域,global-session和Portlet应用相关。当你的应用部署在Portlet容器 中工作时,它包含很多portlet。如果你想要声明让所有的portlet共用全局的存储变量的话,那么 这全局变量需要存储在global-session中。全局作用域与Servlet中的session作用域效果相同。 - spring框架中的单例Bean是安全的吗?
单例bean意味着全局共享,在多线程下不是线程安全的。 - 简述几种排序(假如是一个从小到大的排序)
冒泡排序:冒泡排序会让相邻之间的两个元素进行比较,若前者小于后者就不变,反之则交换位置。
选择排序:选择排序的原理是第一次从第一个元素开始,找出最小(最大)的元素放在起始位置,接着从起始的下一位开始找出剩下元素中最小(最大)的元素,以此类推。
插入排序:从第二个元素开始,将后面的元素插入到前面已经排好序的有序队列中。
希尔排序:希尔排序是将数据按照下标增量进行分组,然后对每一组进行插入排序,然后增量会逐渐减少,当减到1的时候就结束了。
快速排序:从所有元素中选出一个数作为基数,利用这个基础将数据分为两大部分,左边部分数据都比基数小,右边部分都比基数大,接着再在这两部分中选出各自的基数,让左部分比基数小右部分比基数大,以此类推。
归并排序:归并算法采用的是分治法,先让子序列有序,再将有序的子序列合并。
最后
这次更新完后会停更一段时间了(我也不知道多久),要准备面试了,就没有太多时间继续更新这个了。