Java常见的一些经典面试题(附答案解析)( 四 )


九、hibernate优点:1.对JDBC访问数据库的代码做了封装 , 大大简化了数据访问层繁琐的重复性代码 。 2.Hibernate是一个基于JDBC的主流持久化框架 , 是一个优秀的ORM实现 。 他很大程度的简化DAO 层的编码工作3.hibernate使用Java反射机制 , 而不是字节码增强程序来实现透明性 。 4.hibernate的性能非常好 , 因为它是个轻量级框架 。 映射的灵活性很出色 。 它支持各种关系数据库 ,从一对一到多对多的各种复杂关系 。
十、SpringMvc运行流程1.用户发送请求到DispatchServlet2.DispatchServlet根据请求路径查询具体的Handler3.DispatchServlet调用HandlerAdapter适配器 , 适配器再调用具体的Handler处理业务4.Handler处理结束返回一个具体的ModelAndView给适配器 , 适配器将ModelAndView给 DispatchServlet5.DispatchServlet把视图名称给ViewResolver视图解析器6.ViewResolver视图解析器返回一个具体视图给DispatchServlet7.将渲染视图的展示给用户
十一、ssh和是ssm的区别SSH 通常指的是 struts2 做控制器(controller) , spring管理各层的组件 , hibernate 负责持久化层 。 SSM 则指的是 SpringMVC 做控制器(controller) , Spring 管理各层的组件 , MyBatis 负责持久化 层 。 共同点:1.Spring依赖注入DI来管理各层的组件 。 2.使用面向切面编程AOP管理事物、日志、权限等 。 不同点:1.struts2和springmvc的区别;2.hibernate和mybatis的区别;
十二、struts2和SpringMvc的区别?1.springmvc入口是一个servlet前段控制器 , struts2入口是一个filter过滤器;2.springmvc是基于方法开发的 , 传递参数通过方法的形参来传递;struts2是基于类开发的 , 传递参 数通过类的属性来传递;3.SpringMvc通过参数绑定期将request请求内容解析 , 并给方法形参赋值;struts2采用值栈存储 请求和响应数据 , 通过OGNL存储数据;
十三、hibernate和Mybatis的区别?屏蔽jdbc的底层访问细节 , 使我们不与jdbc api打交道 , 就可以访问数据;jdbc api编程流程固定 , 还将sql语句与java代码混杂在了一起 , 经常需要拼凑sql语句 , 细节很繁 琐;iBatis提供了自动将结果集封装成实体对象和对象集合的功能 , queryForList返回对象集合 , 用queryForObject返回单个对象 , 提供了将实体对象的属性传递给sql语句的参数;Hibernate是一个全自动的orm映射工具 , 他可以自动生成sql语句 , ibatis需要我们自己在xml配置文件中写sql语句 , hibernate要不ibatis负责功能强大很多 。 因为hibernate自动生成sql语句 , 不能写高效率的sql语句 , 对于一些不太复杂的sql查询hibernate可以很好的帮我们完成 , 特别复杂查询ibatis就比较合适了;
十四、Mybatis缓存机制?缓存机制:Mybatis首先去缓存中查询结果集 , 如果没有则查询数据库 , 如果有则从缓存中取出返回结果集就不走数据库;Mybatis的一级缓存是SqlSession级别的缓存 , 在操作数据库时需要创建SqlSession对象 , 在对象中有一个数据结构用于存储缓存的数据 , 不同的SqlSession之间的缓存互不影响并且不能互相读取;Mybatis的二级缓存即查询缓存 , 它的作用域是一个mapper的namespace , 即在同一个namespace中查询sql可以从缓存中获取数据 , 二级缓存是可以跨 SqlSession的;MyBatis 默认没有开启二级缓存 , 开启只需在配置文件中写入如下代码:
Web部分一、JSP九大内置对象?作用分别是什么?分别有什么方法
request:用户端请求 , 此请求会包含来自GET/POST请求的参数response:网页传回用户端的回应pageContext:网页的属性是在这里管理session:与请求有关的回话期application servlet:正在执行的内容out:用来传送回应的输出page:JSP网页本身config:servlet的构架部分exception:针对错误网页 , 未捕捉的例外request表示HttpServletRequest对象;它包含了有关浏览器请求的信息 , 并且提供了几个用于获取cookie , header和session数据的方法response表示HttpServletResponse对象 , 并且提供了几个用于设置送回浏览器响应的方法


推荐阅读