avatar

Java面试题9

1.什么是SSM框架?

Spring + Spring MVC + Mybatis,一个Java EE企业级框架,适用于搭建各种大型的企业级应用系统

2.什么是Spring

1
2
为了解决企业应用开发的复杂性而创建的一个分层的Java SE/EE应用full-stack轻量级开源框架,以IoC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programming:面向切面编程)为内核
3.提供了展现层SpringMVC和持久层Spring JDBCTemplate以及业务层事务管理等众多的企业级应用技术,能整合开源世界众多著名的第三方框架和类库Java EE企业应用开源框架

3.什么事务?事务的四大特性

1
2
3
4
5
6
是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元)
四大特性:
1.原子性: 事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做
2.隔离性: 一个事务的执行不能其它事务干扰;即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰
3.一致性: 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态;因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态;如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是 不一致的状态
4.持久性: 指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的;接下来的其它操作或故障不应该对其执行结果有任何影响

4.什么是FastDFS

1
阿里巴巴的一个开源的轻量级分布式文件系统

5.什么是Spring Cloud

1
一个微服务框架

6.Spring boot与Spring cloud是什么关系?

1
2
3
4
Spring boot是Spring的一套快速配置脚手架,可以基于spring boot快速开发单个微服务;Spring Cloud是一个基于Spring Boot实现的云应用开发工具
Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架
spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud 很大的一部分是基于Spring boot来实现
Spring boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring boot,属于依赖的关系

7.Spring的两大核心是什么?

1
2
3
4
5
6
7
8
9
10
11
12
13
IOC(控制反转): 是一种设计思想,在Java开发中,将你设计好的对象交给容器控制,而不是显示地用代码进行对象的创建
好处:
1.资源集中管理,实现资源的可配置和易管理
2.降低了资源的依赖程度,即松耦合
3.便于测试
4.功能可复用(减少对象的创建和内存消耗)
5.使得程序的整个体系结构可维护性、灵活性、扩展性变高
AOP(面向切面编程):是一种编程思想,将系统中非核心的业务提取出来,进行单独处理
好处:
1.通知自定义
2.切面获得返回值
3.解耦和
4.统一管理权限,统一管理异常抛出

8.Spring中使用了哪些设计模式?

1
2
3
4
5
6
7
8
9
1.简单工厂模式
2.工厂模式
3.单例模式
4.适配器模式
5.包装器模式
6.代理模式
7.观察者模式
8.策略模式
9.模板模式

9.什么是MyBatis?谈谈你对MyBatis的理解?

1
2
3
4
1.MyBatis是一款优秀的持久层框架,它支持定制SQL、存储过程以及高级映射;MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集;MyBatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Old Java Objects,普通老式Java对象)为数据库中的记录
2.首先Mybatis是一个对象关系映射(Object Relational Mapping,简称ORM)框架,是为了解决面向对象与关系数据库存在的互不匹配的现象;也就是说Mybatis的关注点在于对象与数据库之间的映射,Mybatis会把从数据库中得到的松散数据进行封装,使开发者直接拿到一个对象;Mybatis其实是对jdbc的操作数据库的过程进行了封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码
Mybatis需要手写Sql语句,对jdbc的封装程度不如hibernate,但因此也灵活得多
在使用mybatis时,只需要关注三个部分(1.sql语句 2.输入参数 3.输出参数)

10.MyBatis的优点和缺点

1
2
3
4
5
6
7
8
9
Mybaits的优点:
1.基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用
2.与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接
3.很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)
4.能够与Spring很好的集成
5.提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组件维护
MyBatis框架的缺点:
1.SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求
2.SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库
文章作者: 123
文章链接: https://gao5805123.github.io/123/2020/06/03/Java%E9%9D%A2%E8%AF%95%E9%A2%989/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 123
打赏
  • 微信
    微信
  • 支付宝
    支付宝