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面试宝典之开源框架!相关推荐

  1. 程序员疯抢的 Java 面试宝典(PDF 版)限时开源,别把大厂想的那么难,关键是你准备得如何

    Java 面试 2022 届高校毕业生规模预计 1076 万人,同比增加 167 万人,对于 22 届的同学们来说,今年下半年大规模进行的秋招是获得全职 Offer 的最重要的途径!对于程序员来说,大 ...

  2. Java面试宝典(2018版)

    置顶 2018年11月10日 23:49:18 我要取一个响亮的昵称 阅读数:8893 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/chen_28 ...

  3. java面试宝典备份

    转自:  https://blog.csdn.net/HuaZi_Myth/article/details/93894334 java面试宝典备份 1.[ meta标签的作用是什么](http://w ...

  4. java面试宝典2019(总结)

    推荐面试视频教程 2019最全BATJ面试免费视频教程 java面试宝典2019 1. meta标签的作用是什么 2. ReenTrantLock可重入锁(和synchronized的区别)总结 3. ...

  5. java面试宝典(自己先留着)

    java面试宝典 1. meta标签的作用是什么 2. ReenTrantLock可重入锁(和synchronized的区别)总结 3. Spring中的自动装配有哪些限制? 4. 什么是可变参数? ...

  6. java面试宝典2019(好东西先留着)

    java面试宝典2019 1.meta标签的作用是什么 2.ReenTrantLock可重入锁(和synchronized的区别)总结 3.Spring中的自动装配有哪些限制? 4.什么是可变参数? ...

  7. 大腿拍断!足足闭关一个月肝完999页Java面试宝典,心灰意冷之际意外收到美团Offer!

    前言 事情是这样的,今年年初,在某个大博主那里拿到一份Java面试宝典,然后就一直躺在盘里吃灰,直到5月份的时候,有了要跳槽的计划和打算,就想着要刷刷面试题,所以就把这套"积灰"的 ...

  8. 【2022最新Java面试宝典】—— Spring面试题(75道含答案)

    目录 1. Spring概述 1.1 什么是spring? 1.2 Spring的俩大核心概念 1.3 Spring框架的设计目标,设计理念,和核心是什么 1.4 Spring的优缺点是什么? 1.5 ...

  9. 【2022最新Java面试宝典】—— SpringCloud面试题(49道含答案)

    目录 Spring Cloud 1. 什么是微服务架构 2. 为什么需要学习Spring Cloud 3. Spring Cloud 是什么 4. SpringCloud的优缺点 5. SpringB ...

最新文章

  1. host ntrip 千寻rtk_什么是千寻知寸cors账号?它提供的定位服务精度如何?使用时需要注意哪些问题?...
  2. 非此即彼的逻辑错误_超全MBA逻辑答题口诀,快收藏!
  3. 巧用二进制,让性能提升100倍,让存储空间减少100倍
  4. 《快速搞垮一个技术团队的20个“必杀技”》
  5. log file sycn 概述
  6. 好好说一说室内定位技术
  7. Xfire方式开发和解析webservice
  8. 【cJSON】CJSON学习笔记(二)
  9. 【JDK源码】java.util.concurrent.atomic包常用类详解
  10. 虚拟机网络配置详解(NAT、桥接、Hostonly)
  11. SecureCRT在卸载时似乎会同时删除系统自带的Consolas字体
  12. 图灵机器人调用数据恢复_机器人也能撩妹?python程序员自制微信机器人,替他俘获女神芳心...
  13. H3C——路由策略和策略路由实例配置
  14. spring cloud gateway集成hystrix全局断路器
  15. windowsSDK加速键实例分析
  16. WIN10和XP共享及XP添加WIN10共享打印机方法
  17. 《从零开始学习jQuery》及《jQuery风暴》学习笔记
  18. AJAX Control Toolkit ——FilteredTextBoxExtender(文本过滤)
  19. 【GCN】2021年,我终于决定入门GCN
  20. ckeditor实战总结

热门文章

  1. Non-local Neural Networks:非局部神经网络
  2. tomcat如何增大并发_Tomcat 7最大并发连接数的正确修改方法
  3. Greenplum【环境搭建 04】使用GPKafka实现Kafka数据导入Greenplum数据库(扩展安装文件网盘分享)
  4. 【MyBatis使用】 mapper文件未编译 + statementType使用 + 返回结果字段顺序不一致 + 获取自增ID + 一个update标签批量更新记录
  5. pagehelper 不分页几种情况的解决方法
  6. 鸿蒙 体验,华为鸿蒙OS全面上线,实际体验更胜EMUI11,安卓迎来“对手”
  7. 动态分辨率是什么意思_b站么么直播最新动态里都有啥 b站什么意思
  8. 十大经典排序算法总结(够兄弟们喝一壶的)
  9. PaddleOCR——Docker环境下基于HubServing模式部署Restful API服务(CPU版本)
  10. Vue——全局element-resize-detector监听DOM元素