送给正在找工作程序员,必须掌握的面试题

1.什么是Spring?
  Spring 是一个轻量级框架,其核心是Bean工厂(Bean factory),用以构造我们所需要的M(Model),在此基础上它提供了IOC容器和AOP思想。
2.什么是IOC?
 实现了控制反转和依赖注入。
 当一个角色需要另一个角色的协助,在传统程序设计过程中,通常由调用者为被调用者创建实例,
 但在Spring中创建被调用的的实例工作不要调用者完成,因此成为控制反转。创建被调用者的工作由Spring容器
 来完成,然后注入调用者,因此成为依赖注入。不管依赖注入,还是控制反转,都说明Spring的动态,灵活的方式来管理各种对象,对象与对象之间具体是先互相透明。
3.什么是AOP?
  AOP是面向切面编程,它是OOP(面向对象编程)的补充和完善,AOP利用一种“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用的模块,并将其命名为“aspeck”.简单地说就是将哪些与业务无关,却为业务模块所用同调用的逻辑或者责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。
4.什么是MVC?
  MVC是一个设计模式,它强制性的使用应用的输入,处理和输出分开。使用MVC应用程序被分成三个核心部位:模型,视图,控制器。它们各自处理自己的任务。
5.什么是SpringMVC?
  它是基于Spring功能之上添加了web框架,属于Spring,SpringMVC需要Spring的架包作为支持才能跑起来。
6.什么是Mybatis?
  它是一个可以自定义SQL、存储过程和高级映射的持久层框架。Mybatis摒除了大部分的JDBC代码、手工设置参数和结果集重获。Mybatis只使用简单的xml和注解配置和映射基本数据类型、Map接口和POJO到数据库记录。
  实现原理:用过controlle经过service然后执行service中的相关方法并关联mapper再执行mapper.xml中的sql语句。
7.什么是hibernate?
  它是一个数据库访问框架,用于实现对数据库的增删改查操作,使用hibernate可以简化数据库访问操作,要程序员将更多的经历放在业务编写。
  设计原理:ORM(object、relation、mapper)对象关系映射,一丝是将程序中的实体对象和关系数据库中的一行记录进行映射,这样在程序使用该工具就可以将一个对象写入数据表,或者将数据表记录自动封装成一个对象返回。
8.Mybatis和hibernate的区别?
  具体区别可以分为这几个方面:
  (1).开发速度:针对高级查询,mybatis需要手动编写sql语句,以及resultMap.而hibernate有良好的映射机制,开发者无需关心sql的生成与结果映射,可以专注于业务逻辑。
  (2).SQL优化方面:hibernate的查询会将表中的所有字段都查询出来,这一点会有性能消耗。hibernate也可以自己编写sql来指定需要查询的字段,但这样就破环了hibernate开发的简洁性。而Mybatis的sql语句是手动编写的,所以可以按需求制定查询字段。
  (3).扩展方面:Hibernate与具体数据库的关联只需在xml文件中配置即可,所有的HQL语句与具体使用的数据库无关,移植性很好。Mybatis项目中所有的sql语句都是以来所用的数据库,所以不同数据库类型的支持不好。
9.Spring中事务的原理?
  事物是逻辑处理原子性的保证手段,通过使用事务控制,可以极大地避免出现逻辑处理失败导致的脏数据等问题。
  事物最重要的两个特性,是事物的传播级别和数据隔离级别。
  (1).事物有七个传播级别,它的定义是事物的控制范围。
  (2).事物有四个数据隔离级别,它的定义是事物在数据库都些方面的控制范围。
  事务中相对比较重点的还有它的特性(原子性,隔离性,一致性,持久性简称ACID)。
  (1).原子性:在一个事务的内部执行操作必须全部成功(或者全部失败)。提示:原子性不一定能保持一致性。
  (2).一致性:一致性可以分为数据库外部的一致性和数据库内部的一致性。前者是通过在外部编码来保证的,后者是数据库来保证的(数据处于一种有意义的状态)。
  (3).隔离性:多个事务并发执行的状态,和他们串行执行后的状态是等价的。提示:如何隔离?这就涉及到了两个类型的锁:
  (1).悲观锁:即当前事务将所有设计操作的独享加锁,操作完成后释放给其它对象使用。
  (2).乐观锁:其不同的事务可以同时看到同一对象(一般是数据行)的不同历史版本。如果有两个事务同时修改了统一数据行,那么在较晚的事务提交时进行冲突检测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OOEM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值