2017全面JAVA面试经历总结

上传人:xmg****18 文档编号:118843543 上传时间:2019-12-27 格式:DOC 页数:18 大小:234.64KB
返回 下载 相关 举报
2017全面JAVA面试经历总结_第1页
第1页 / 共18页
2017全面JAVA面试经历总结_第2页
第2页 / 共18页
2017全面JAVA面试经历总结_第3页
第3页 / 共18页
2017全面JAVA面试经历总结_第4页
第4页 / 共18页
2017全面JAVA面试经历总结_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《2017全面JAVA面试经历总结》由会员分享,可在线阅读,更多相关《2017全面JAVA面试经历总结(18页珍藏版)》请在金锄头文库上搜索。

1、. . . .2017JAVA面试经验问题0、对SSH的理解:SSH即:Struts(表示层)+Spring(业务层)+Hibernate(持久层)Struts:Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。(View:沿用JSP,HTTP,Form,Tag,Resourse;Controller:ActionServlet,struts-config.xml,Action)Hibernate:Hibernate是一个持久层框架,它只负责与关系数据库的操作。Spring:Spring是一个业务

2、层框架,是一个整合的框架,能够很好地黏合表示层与持久层。1、 对Spring的相关理解Spring框架目的是为了让模块与模块(对象与对象)之间的关联不是通过代码来关联而是通过配置来关联。Spring的核心是IOC与AOP。IOC(Inversion of Control)控制反转是关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。控制反转可以理解为生产和管理Bean的容器,原来需要在调用类中New的东西,现在都有IOC容器产生。IOC的三种注入方式:inject1、 根据属性注入也就是Set方法注入2、 根据构造方法注入3、 根据注解注入IOC最大的好处是什么?因为把对象生成放在了XM

3、L里定义,所以当我们需要换一个实现子类将会变成很简单(一般这样的对象都是实现于某种接口的),只要修改XML就可以了,这样我们甚至可以实现对象的热插拔(有点像USB接口和SCSI硬盘了)。DI依赖注入:Dependencyinjection依赖注入是一个IOC的特殊实现,依赖注入是指一个对象应用另外一个对象来提供一个特殊的能力,例如:把一个数据库连接以参数的形式传到一个对象的结构方法里面而不是在那个对象内部自行创建一个连接。控制反转和依赖注入的基本思想就是把类的依赖从类内部转化到外部以减少依赖。 AOP(Aspect Oriented Programming):针对一个切面来编程。 AOP面向切

4、面编程 将程序中的交叉业务逻辑(比如安全,日志,事务等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。 面向切面编程通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP可以理解为实现调用某个方法之前或者之后,自动执行一系列自定义的语句(例如:每做一次数据库操作都要生成一句日志)。实现AOP功能采用的是代理技术,客户端程序不再调用目标,而调用代理类,代理类与目标类对外具有相同的方法声明,有两种方式可以实现相同的方法声明,一是实现相同的接口,二是作为目标的子类在, JDK 中采用 Prox类产生动态代理的方式为某个接口生成实现类,如果要为某个类生成子类,则可以用CGL

5、B。AOP的主要作用是:日志记录,性能统计,安全控制,事务处理,异常处理等等AOP与OOP的区别:OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。举个简单的例子,对于“雇员”这样一个业务实体进行封装,自然是OOP/OOD的任务,我们可以为其建立一个“Employee”类,并将“雇员”相关的属性和行为封装其中。而用AOP设计思想对“雇员”进行封装将无从谈起。同样,对于“权限检查”这一动作片断进行划分,则是AOP的目标领域。而通过OOD/OOP对一个动作进行封装,则有点不伦不类。换而言之,OOD/OOP面向名词领域,AOP面向动词领域。1.

6、1.Spring常用注解1、Controller 用于标注控制层组件(如struts中的action),负责注册一个bean 到spring 上下文中,bean 的ID 默认为类名称开头字母小写。例如: Controllerpublic class UserAction extends BaseAction 或者Controller(userAction)使用Controller注解标识UserAction之后,就表示要把UserAction交给Spring容器管理,在Spring容器中会存在一个名字为userAction的action,这个名字是根据UserAction类名来取的。2、Ser

7、viceService对应的是业务层Bean,例如:Service(userService)public class UserServiceImpl implements UserService 3、Repository用于标注数据访问组件,即DAO组件。例如:Repository(value=userDao)public class UserDaoImpl extends BaseDaoImpl 4、RequestMapping在类前面定义,则将url和类绑定。在方法前面定义,则将url和类的方法绑定5、RequestParam Scope用于指定scope作用域的(用在类上)Resourc

8、e默认按名称装配,当找不到与名称匹配的bean才会按类型装配。Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合Qualifier注解一起使用。如下:Autowired Qualifier(personDaoBean) 存在多个实例配合使用PostConstruct 初始化注解PreDestroy 摧毁注解 默认 单例 启动就加载 1.4、Spring事务管理机制事务就是对一系列的数据库操作(比如插入多条数据)进行统一的提交或回滚操作,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之前的所有操作。这样可以防止出现脏数据,防止数据库数据出现问题。开发中为了避免这

9、种情况一般都会进行事务管理。spring提供了几个关于事务处理的类:TransactionDefinition/事务属性定义TranscationStatus/代表了当前的事务,可以提交,回滚。PlatformTransactionManager这个是spring提供的用于管理事务的基础接口,其下有一个实现的抽象类AbstractPlatformTransactionManager,我们使用的事务管理类例如DataSourceTransactionManager等都是这个类的子类。一般事务定义步骤如下:TransactionDefinitiontd=newTransactionDefiniti

10、on();TransactionStatusts=transactionManager.getTransaction(td);try/dosthtransactionMmit(ts);catch(Exceptione)transactionManager.rollback(ts);spring提供的事务管理可以分为两类:编程式的和声明式的。编程式的,比较灵活,但是代码量大,存在重复的代码比较多;声明式的比编程式的更灵活。编程式主要使用transactionTemplate。省略了部分的提交,回滚,一系列的事务对象定义,需注入事务管理对象 声明式:使用TransactionProxyFactor

11、yBean:围绕Poxy的动态代理能够自动的提交和回滚事务org.springframework.transaction.interceptor.TransactionProxyFactoryBeanPROPAGATION_REQUIRED支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。PROPAGATION_SUPPORTS支持当前事务,如果当前没有事务,就以非事务方式执行。1.5、spring中的核心类有那些,各有什么作用?BeanFactory:产生一个新的实例,可以实现单例模式BeanWrapper:提供统一的get及set方法ApplicationContext:提

12、供框架的实现,包括BeanFactory的所有功能。 2、Spring MVCSpring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,C(控制器)将V(视图、用户客户端)与M(模块,业务)分开构成了MVC.Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的MVC架构,从而在使用Spring进行WEB开发时,可以选择使

13、用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。2.1.SpringMVC工作原理operatingprinciple1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.3.DispatcherServlet请请求提交到目标Controller4.Controller进行业务逻辑处理后,会返回一个ModelAndView5.Dispathch

14、er查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象6.视图对象负责渲染返回给客户端。DispatcherServlet是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:1、截获符合特定格式的URL请求。2、初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。3、初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。2.2

15、、SpringMVC接口解释1、DispatcherServlet接口:Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。2、HandlerMapping接口:能够完成客户请求到Controller映射。3、Controller接口:需要为并发用户处理上述请求,因此实现Controller接口时,必须保证线程安全并且可重用。Controller将处理用户请求,这和Struts Action扮演的角色是一致的。一旦Controller处理完用户请求,则返回Mo

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号