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面试宝典之开源框架!相关推荐
- 程序员疯抢的 Java 面试宝典(PDF 版)限时开源,别把大厂想的那么难,关键是你准备得如何
Java 面试 2022 届高校毕业生规模预计 1076 万人,同比增加 167 万人,对于 22 届的同学们来说,今年下半年大规模进行的秋招是获得全职 Offer 的最重要的途径!对于程序员来说,大 ...
- Java面试宝典(2018版)
置顶 2018年11月10日 23:49:18 我要取一个响亮的昵称 阅读数:8893 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/chen_28 ...
- java面试宝典备份
转自: https://blog.csdn.net/HuaZi_Myth/article/details/93894334 java面试宝典备份 1.[ meta标签的作用是什么](http://w ...
- java面试宝典2019(总结)
推荐面试视频教程 2019最全BATJ面试免费视频教程 java面试宝典2019 1. meta标签的作用是什么 2. ReenTrantLock可重入锁(和synchronized的区别)总结 3. ...
- java面试宝典(自己先留着)
java面试宝典 1. meta标签的作用是什么 2. ReenTrantLock可重入锁(和synchronized的区别)总结 3. Spring中的自动装配有哪些限制? 4. 什么是可变参数? ...
- java面试宝典2019(好东西先留着)
java面试宝典2019 1.meta标签的作用是什么 2.ReenTrantLock可重入锁(和synchronized的区别)总结 3.Spring中的自动装配有哪些限制? 4.什么是可变参数? ...
- 大腿拍断!足足闭关一个月肝完999页Java面试宝典,心灰意冷之际意外收到美团Offer!
前言 事情是这样的,今年年初,在某个大博主那里拿到一份Java面试宝典,然后就一直躺在盘里吃灰,直到5月份的时候,有了要跳槽的计划和打算,就想着要刷刷面试题,所以就把这套"积灰"的 ...
- 【2022最新Java面试宝典】—— Spring面试题(75道含答案)
目录 1. Spring概述 1.1 什么是spring? 1.2 Spring的俩大核心概念 1.3 Spring框架的设计目标,设计理念,和核心是什么 1.4 Spring的优缺点是什么? 1.5 ...
- 【2022最新Java面试宝典】—— SpringCloud面试题(49道含答案)
目录 Spring Cloud 1. 什么是微服务架构 2. 为什么需要学习Spring Cloud 3. Spring Cloud 是什么 4. SpringCloud的优缺点 5. SpringB ...
最新文章
- host ntrip 千寻rtk_什么是千寻知寸cors账号?它提供的定位服务精度如何?使用时需要注意哪些问题?...
- 非此即彼的逻辑错误_超全MBA逻辑答题口诀,快收藏!
- 巧用二进制,让性能提升100倍,让存储空间减少100倍
- 《快速搞垮一个技术团队的20个“必杀技”》
- log file sycn 概述
- 好好说一说室内定位技术
- Xfire方式开发和解析webservice
- 【cJSON】CJSON学习笔记(二)
- 【JDK源码】java.util.concurrent.atomic包常用类详解
- 虚拟机网络配置详解(NAT、桥接、Hostonly)
- SecureCRT在卸载时似乎会同时删除系统自带的Consolas字体
- 图灵机器人调用数据恢复_机器人也能撩妹?python程序员自制微信机器人,替他俘获女神芳心...
- H3C——路由策略和策略路由实例配置
- spring cloud gateway集成hystrix全局断路器
- windowsSDK加速键实例分析
- WIN10和XP共享及XP添加WIN10共享打印机方法
- 《从零开始学习jQuery》及《jQuery风暴》学习笔记
- AJAX Control Toolkit ——FilteredTextBoxExtender(文本过滤)
- 【GCN】2021年,我终于决定入门GCN
- ckeditor实战总结
热门文章
- Non-local Neural Networks:非局部神经网络
- tomcat如何增大并发_Tomcat 7最大并发连接数的正确修改方法
- Greenplum【环境搭建 04】使用GPKafka实现Kafka数据导入Greenplum数据库(扩展安装文件网盘分享)
- 【MyBatis使用】 mapper文件未编译 + statementType使用 + 返回结果字段顺序不一致 + 获取自增ID + 一个update标签批量更新记录
- pagehelper 不分页几种情况的解决方法
- 鸿蒙 体验,华为鸿蒙OS全面上线,实际体验更胜EMUI11,安卓迎来“对手”
- 动态分辨率是什么意思_b站么么直播最新动态里都有啥 b站什么意思
- 十大经典排序算法总结(够兄弟们喝一壶的)
- PaddleOCR——Docker环境下基于HubServing模式部署Restful API服务(CPU版本)
- Vue——全局element-resize-detector监听DOM元素