Java面试宝典之开源框架!

Posted 程序员的小傲娇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试宝典之开源框架!相关的知识,希望对你有一定的参考价值。

Java人才需求怎么样?Java开源框架面试有哪些?Java开发已然成为很多程序员都追求的编程语言,目前Java开发人才的需求非常大,待遇也是相当不错。无论是因为兴趣还是因为就业,学习Java编程都是一个非常好的选择。下面就给大家分享一些Java面试宝典之开源框架。

1. hibernate和mybatis的区别?

相同点:

1)都属于ORM框架

2)都是对jdbc的包装

3)都属于持久层的框架

不同点:

1)hibernate是面向对象的,mybatis是面向sql的;

2)hibernate全自动的orm,mybatis是半自动的orm;

3)hibernate查询映射实体对象必须全字段查询,mybatis可以不用;

4)hibernate级联操作,mybatis则没有;

5)hibernate编写hql查询数据库大大降低了对象和数据库的耦合性,mybatis提供动态sql,需要手写sql,与数据库之间的耦合度取决于程序员所写的sql的方法,所以hibernate的移植性要远大于mybatis。

6)hibernate有方言夸数据库,mybatis依赖于具体的数据库。

7)hibernate拥有完整的日志系统,mybatis则相对比较欠缺。

2. MyBatis的优点?

1、基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。

2、与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接;

3、很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)。

4、能够与Spring很好的集成;

5、提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组件维护。

3.MyBatis框架的缺点?

(1)SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。

(2)SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

4. SpringMVC工作流程?

1、用户发送请求至前端控制器DispatcherServlet

2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

5、执行处理器(Controller,也叫后端控制器)。

6、Controller执行完成返回ModelAndView

7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet

8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器

9、ViewReslover解析后返回具体View

10、DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。

11、DispatcherServlet响应用户

5.MyBatis框架使用的场合?

(1)MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案。

(2)对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis将是不错的选择。

6.Spring中beanFactory和ApplicationContext的联系和区别?

BeanFactory是spring中较为原始的Factory,无法支持spring的许多插件,如AOP功能、Web应用等。

ApplicationContext接口是通过BeanFactory接口派生而来的,除了具备BeanFactory接口的功能外,还具备资源访问、事件传播、国际化消息访问等功能。

总体区别如下:

1)使用ApplicationContext,配置bean默认配置是singleton,无论是否使用,都会被实例化。优点是预先加载,缺点是浪费内存;

2)使用BeanFactory实例化对象时,配置的bean等到使用的时候才会被实例化。优点是节约内存,缺点是速度比较慢,多用于移动设备的开发;

3)没有特殊要求的情况下,应该使用ApplicationContext完成,ApplicationContext可以实现BeanFactory所有可实现的功能,还具备其他更多的功能。

7. SpringIOC注入的几种方式?

构造器注入

set方法注入

接口注入

8.拦截器与过滤器的区别?

1、拦截器是基于java的反射机制的,而过滤器是基于函数回调

2、拦截器不依赖与servlet容器,过滤器依赖与servlet容器。

3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。

4、拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。

5、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次

9. SpringIOC是什么?

Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。

10. AOP有哪些实现方式?

实现 AOP 的技术,主要分为两大类:

静态代理 - 指使用 AOP 框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称为编译时增强;

编译时编织(特殊编译器实现)

类加载时编织(特殊的类加载器实现)。

动态代理 - 在运行时在内存中“临时”生成 AOP 动态代理类,因此也被称为运行时增强。
  
本文来自千锋教育,转载请注明出处。

以上是关于Java面试宝典之开源框架!的主要内容,如果未能解决你的问题,请参考以下文章

springcloud原理面试题,直击优秀开源框架灵魂

java大厂面试指南:性能优化+微服务+并发编程+开源框架+分布式

java程序员面试笔记pdf,直击优秀开源框架灵魂

[Interview]Java 面试宝典系列之设计模式

Java开发面试题!java知识框架图

程序员必看 | Java面试宝典,拿走不谢