Java开发中常用的一些框架有关的面试题

1、spring的理解

答:spring是一家伟大的公司,其下有很多非常优秀的spring系列产品
(1)spring是轻量级框架,(2)spring是集成框架,像ssm,ssh,shiro都集成了spring,更像是一个粘合剂
(3)spring有控制反转和面向切面编程 (4)spring对事务的管理非常自动

2、请你简单阐述一下IOC ,AOP

答:IOC: java对象创建是Java代码,后面交给了spring,将这种权力的交接称为控制反转;
打个比方:如果用jsp的servlet登陆,你要new dao,new biz等,你每登陆一次,就都要调用这些new的方法
,如果交给了spring的 bean 进行管理,会减少new对象对内存空间的占用,IOC底层就是单例模式,性能好,代码只写一次,多人进行调用。
AOP: 面向切面编程,对于aop的两个优点是对于事务和日志,我们先来说事务;
平时我们如果对某一客户进行增删改操作,需要自己手写开启或关闭事务代码,那Aop对于事务的优点好处在,可以自动管理事务,因为Aop的底层 是过滤器,——> 再往下走就是(前置,后置这类的)通知 ——> 代理(动态,静态),动态代理就会自动检测增删改操作,并且自动开启事务,提交事务
再说日志:日志其实方便权限中的操作记录,运用到的是过滤器,切面

3、struts2和springmvc的区别

答:(1)struts2侵入性,springmvc的非侵入性;(侵入性是指你用某一方法你必须要继承它,非侵入性则为之相反)
(2)struts2配置多,springmvc配置少
(3)核心处理:struts2的(struts prepare and execute Filter)是过滤器
springmvc (dispathServlet) 是servlet

4、mybatis 和hibernate的区别

答:两者都是orm框架
(1)mybatis是半自动化的,sql写在xml里,便于管理, 解除sql与程序代码的耦合,同时可以防止SQL注入。
(2)hibernate是全自动的,sql很多都是自动生成的,无法直接维护sql,写sql的灵活度上hibernate不及mybatis。
(3)hibernate开发性能高,但是性能差(运行慢),
mybatis 由于xml里标签id必须唯一,导致DAO中方法不支持方法重载。

5、hibernate的对象三种状态

答:Transien 临时态(又叫新建):对象刚new出来,还没有被保存到数据库中
Persistent 持久态(又叫托管):已经被保存到数据库中
Detached 游离态(又叫脱管):数据库中有,但是session中不存在该对象
如何把临时转换成持久:session.save(对象变量)
如何把持久变成游离: session.clear() /.close() /.remove;(调用session.clear()方法,这个时候就会将session的缓存对象清空)

6、一级缓存Session和二级缓存SessionFactory

答:一级缓存是指Session
二级缓存 sessionFactory是用来生产session的;(1)开启二级缓存,(2)开启对象是否开启seesion

你可能感兴趣的:(瞎几把写的)