码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA面试知识整理

时间:2019-10-08 21:56:25      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:控制器   com   补充   批量   plain   png   地方   jsp   稳定性   

一、Java Web系统框架的设计

为满足银行日常业务需要,如何设计满足稳定性与及时性的服务框架?

1.MVC编程模式

视图View:JSP   +   控制器Controler:Servlet   +    模型Model:Javabean

缺陷:JSP嵌入JAVA代码,页面结构混乱;C和M耦合度高,程序复用性差

2.新工具的改进

表示层:Struts   +   业务层:Spring    +    持久层:Hibernate

3.不同框架实现MVC的方式

a) Servlet:

技术图片

b) Spring:

技术图片

c) Struts2:

技术图片

4.Struts2

优点:业务代码解耦,提高开发效率

缺点:执行效率偏低,需要使用反射、解析XML等技术手段,结构复杂

5.Hibernate

优点:

1、对象化。人员以面相对象的思想来操作数据库。Hibernate支持许多面向对象的特性,如组合,继承,多态等。

2、更好的移植性.对于不同的数据库,开发者只需要使用相同的数据操作即可.

3、开发效率高。hibernate提供了大量的封装(这也是它最大的缺点),很多数据操作以及关联关系等都被封装的很好,开发者不需写大量的sql语句,这就极大的提高了开发者的开发效率。

4、缓存机制的使用。hibernate提供了缓存机制(session缓存,二级缓存,查询缓存),对于那些改动不大且经常使用的数据,可以将它们放到缓存中,不必在每次使用时都去查询数据库,缓存机制对提升性能大有裨益。

缺点:

一、由于对持久层封装过于完整,导致开发人员无法对SQL进行优化,无法灵活使用JDBC的原生SQL,Hibernate封装了JDBC,所以没有JDBC直接访问数据库效率高。要使用数据库的特定优化机制的时候,不适合用Hibernate。
二、框架中使用ORM原则,导致配置过于复杂,一旦遇到大型项目,比如300张表以上,配置文件和内容是非常庞大的,另外,DTO满天飞,性能和维护问题随之而来
三、如果项目中各个表中关系复杂,表之间的关系很多,在很多地方把lazy都设置false,会导致数据查询和加载很慢,尤其是级联查询的时候。
四、Hibernate在批量数据处理时有弱势,对于批量的修改,删除,不适合用Hibernate,这也是ORM框架的弱点。Hibernate不适用于小型项目。

五、针对单一对象简单的增删查改,适合于Hibernate,而对于批量的修改,删除,不适合用Hibernate,这也是OR框架的弱点;要使用数据库的特定优化机制的时候,不适合用Hibernate

6.Spring

一、非侵入式编程

   Spring框架的API不会再业务逻辑上出现,即业务逻辑是POJO(Plain Ordinary Java Object)。由于业务逻辑中没有Spring的API,所以业务逻辑可以从Spring框架快速的移植到其他框架。

二、容器

  Spring作为一个容器,可以管理对象的生命周期、对象与对象之间的依赖关系。可以通过配置文件来定义对象,以及设置其他对象的依赖关系。

三、IoC

   控制反转(Inversion of Control),即创建被调用的实例不是由调用者完成,而是由Spring容器完成,并注入调用者。

  当应用IoC,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或查找依赖对象,即,不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

四、AOP

    面向切面编程,是一种编程思想,是面向对象编程OOP的补充。Spring提供面向对象编程的支持,允许通过分离应用的业务逻辑与系统级服务(日志和事务管理)进行开发。应用对象只实现他们应该做的(完成业务逻辑),并不负责其它的系统级关注点(日志或者事务的支持)。

  可以把日志、安全、事务管理等服务理解成一个“切面”,把很多被业务逻辑反复使用的服务完全剥离出来,以达到复用。然后将“切面”动态的“织入”到业务逻辑中,让其享受此“切面”的服务。

 

JAVA面试知识整理

标签:控制器   com   补充   批量   plain   png   地方   jsp   稳定性   

原文地址:https://www.cnblogs.com/xmalll/p/11638036.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!