急求java面试题

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:41:51
1.在hibernate中当一个数据很大时怎么处理
2.long 型的很大的数,不用string,char的api如何实现反转
3.怎样用hashmap实现一个tree
4.请写一个简单的线程池
5.String str = "yes" if (str == "no") str += "ok" 一共创建了几个对象
6.项目的最大的处理流量是多少
7.怎么处理多台数据服务器之间session 和cookie得问题
8.Hibernate中解决n+1次查询的方法
9.什么是Checked Exception,Unchecked Exception?
10.描述一下JAVA ClassLoader 或者J2EE ClassLoader的工作原理
11.SQLserver、ORACLE、Mysql中实现分页的机制各是什么
12.Dom4j如何使用
13.单列模式3个特点
14.解释spring的工作机制

spring 容器 内部工作机制

Spring的AbstractApplicationContext是ApplicationContext抽象实现类,该抽象类的refresh()方法定义了Spring容器在加载配置文件后的各项处理过程,这些处理过程清晰刻画了Spring容器启动时所执行的各项操作。下面,我们来看一下refresh()内部定义了哪些执行逻辑:

1.初始化BeanFactory:根据配置文件实例化BeanFactory,getBeanFactory()方法由具体子类实现。在这一步里,Spring将配置文件的信息装入到容器的Bean定义注册表(BeanDefinitionRegistry)中,但此时Bean还未初始化;
2.调用工厂后处理器:根据反射机制从BeanDefinitionRegistry中找出所有BeanFactoryPostProcessor类型的Bean,并调用其postProcessBeanFactory()接口方法;
3.注册Bean后处理器:根据反射机制从BeanDefinitionRegistry中找出所有BeanPostProcessor类型的Bean,并将它们注册到容器Bean后处理器的注册表中;
4.初始化消息源:初始化容器的国际化信息资源;
5.初始化应用上下文事件广播器;
6.初始化其他特殊的Bean:这是一个钩子方法,子类可以借助这个钩子方法执行一些特殊的操作:如AbstractRefreshableWebApplicationContext就使用该钩子方法执行初始化ThemeSource的操作;
7.注册事件监听器;
8.初始化singleton的Bean:实例化所有singleton的Bean,并将它们放入Spring容器的缓存中;
9.发布上下文刷新事件:创建上下文刷新事件,事件广播器负责将些事件广播到每个注册的事件监听器中。
在第3.4节中,我们观摩了Bean从创建到销毁的生命历程,这些过程都可以在上面的过程中找到对应的步骤。Spring协调多个组件共同完成这个复杂的工程流程,图5-1描述了Spring容器从加载配置文件到创建出一个完整Bean的作业流程以及参与的角色。