您的位置:首页 > 职场人生

12.框架基础面试题整理

2018-03-19 13:43 483 查看
Spring 面试回答:

1.什么是Spring框架,Spring有哪些核心木块

1.1.Spring 是个java企业级应用的开源开发框架。

Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。

1.2.七个核心模块

1.Spring WEB MVC MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。2.Spring WEB :Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程 序提供了上下文。所以,Spring 框架支持与 Struts2 的集成。3.Spring ORM :Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构4.Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中5.Spring DAO: JDBC DAO 抽象层提供了有意义的异常层次结构,Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。6.Spring Context:JEESpring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。7.Spring Core :核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

2.spring 在项目中如何使用

1 spring对于程序开发人员来说是透明的2 spring让三层架构之间降低耦合度。(低耦合 高内聚)3 Aop 切面编程特性 帮我们处理事务和 日志。

3.Struts面试问题

Struts 中MVC的理解,以及Struts在web中的使用M: Model,模型,操作数据的业务处理层,并独立于表现层V: 视图,通过客户端数据类型显示数据,并回显模型层的执行结果。C: 控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图

4.MVC的优点缺点

优点:1)视图控制模型分离, 提高代码重用性。2)提高开发效率。3)便于后期维护, 降低维护成本。4)方便多开发人员间的分工。缺点:1)清晰的构架以代码的复杂性为代价, 对小项目优可能反而降低开发效率。2)运行效率相对较低 简单简述下struts2的执行流程基本简要流程如下:1、客户端浏览器发出HTTP请求。2、根据web.xml配置,该请求被FilterDispatcher接收。3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。4、Action调用业务逻辑组件处理业务逻辑,拦截器等这一步包含表单验证。5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。6、返回HTTP响应到客户端浏览器。为什么要使用struts框架使用struts的原因:JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱,所以在此之上,我们需要一个规则、一个把这些技术组织起来的规则,这就是框架,Struts便应运而生。基于Struts开发的应用由3类组件构成:控制器组件、模型组件、视图组件。

5.Hibernate 框架的使用

Hibernate中get和load有什么不同之处?1 load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常  get方法检索不到的话会返回null,2  get方法是直接从数据库中检索数据   而load方法的执行则比较复杂首先查找session缓存中找,如果有则直接返回 如果没有则判断是否是lazy如果不是直接访问数据库检索,查到记录返回,查不到抛出异常 。Hibernate中save、persist和saveOrUpdate这三个方法的不同之处save()只能INSERT记录,但是saveOrUpdate()可以进行 记录的INSERT和UPDATE。还有,save()的返回值是一个Serializable对象,而persist()方法返回值为void。Hibernate 的优势首先、Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。其次、Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现,它很大程度的简化了DAO层编码工作。再次、Hibernate使用Java的反射机制,而不是字节码增强程序类实现透明性。最后、Hibernate的性能非常好,因为它是一个轻量级框架。映射的灵活性很出色。它支持很多关系型数据库,从一对一到多对多的各种复杂关系。Hibernate的工作原理:1.读取并解析Hibernate核心配置文件hibernate.cfg.xml2.读取并解析Hibernate映射文件,创建SessionFactory3.打开Sesssion4.创建事务Transation 5.持久化操作6.提交事务7.关闭Session8.关闭SesstionFactory

6.mybatis和hibernate的区别

mybatis  1.需要人工编写sql语句     2.扩展性差  跟数据库耦合度较高  如果更换数据库 需要重新编写sql  3.开发效率 没有hibernate高  运行效率比hibernate高hibernate 1 自动生成 并且提供了封装的常用接口 Query SqlQuery  2 扩展性 好  跟数据库耦合度地  更换数据库 只需要更改方言  和主键生成策略  3 开发效率较高   运行效率低于myBiatishibernate 如何理解1 轻量级jdbc2 orm 对象关系映射3 方言4 逆向生成表5 内置乐观锁6 数据库优化1 一二缓存2 把复杂sql创建为视图  经常使用的查询列 创建 索引3 把复杂的业务逻辑 通过函数和过程4 连接池!!!

7.事务 

JDBC 用于单一数据源 的一个事务处理JTA  用于 多个数据源  分布式事务处理

9.SpringMVC 和Struts2 的区别

1:spring3 mvc开发效率高于struts2:spring3 mvc可以认为已经100%零配置3:struts2是类级别的拦截, 一个类对应一个request 请求,springmvc是方法级别的拦截,一个方法对应一个request请求,而方法同时又跟一个url对应所以说从架构本身上 spring3 mvc就容易实现     而struts2的架构实现起来要费劲因为struts2 action的一个方法可以对应一个url而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了 4:spring3mvc的方法之间基本上独立的,独享request response数据请求数据通过参数获取,处理结果通过ModelMap交回给框架方法之间不共享变量而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的这不会影响程序运行,却给我们编码 读程序时带来麻烦 5:由于Struts2需要针对每个Request进行封装,把Request,Session等Servlet生命周期的变量封装成一个一个Map
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: