java开发笔试题总结,面试题java开发中遇到的难点

  java开发笔试题总结,面试题java开发中遇到的难点

  如何解决写爬虫IP受阻的问题?立即使用。

  1、Hibernate悲观锁和乐观锁

  (更多面试问题推荐:java面试问答)

  Hibernate悲观锁:加载数据时锁定数据,其他用户只能修改它,直到锁被释放。优点:很好地保持了数据的一致性,缺点:不适合多个用户并发访问。当一个被锁定的资源没有被释放时,该资源将永远不会被其他用户修改,这容易造成无限期的等待。

  Hibernate乐观锁定:在修改数据时,通过版本或时间戳比较数据,数据是否一致来实现锁定。优点更好。

  2、Hibernate三种状态

  临时状态:new的对象尚未持久化,并且不在会话中。

  持久状态:它已被持久化并添加到会话缓存中。处于这种状态的对象称为持久对象;

  自由状态:持久对象与会话的对象分离。例如会话缓存被清空的对象。功能:它已被持久化,但不在会话缓存中。处于这种状态的物体称为自由物体;

  (相关教程推荐:java入门教程)

  3、hibernate和ibatis的区别

  Ibatis:开源项目简单易用,开发灵活,开发工作量大。他们中的大多数都编写自己的sql和许多配置文件。

  Hibernate:开源的对象关系映射框架,开发效率高,但是不能干扰sql,优化程度低。

  4、讲讲mybatis连接池

  常见的mybatis连接池有native、c3p0和dbcp。DataSource接口由工厂模式创建,其实现包括unpooledDataSource(无连接池的数据源)和pooledDataSource(有连接池的数据源),可通过相应的工厂类对象获取。

  以PooledDataSource为例:首先需要一个对象连接数据库,在执行sql语句时获取java.sql.Connection连接对象。

  其次,PooledDataSource数据源将连接池对象包装成PooledConnection对象,放入PoolState容器中进行维护。MyBatis将连接池中的连接池dui分为两种状态:空闲状态和活动状态。PooledConnection对象存储在PoolState容器中的两个列表集合中,即idleConnections和activeConnections:

  在空闲状态下,PooledConnection对象放在idleConnections集合中,指示当前空闲的未使用的PooledConnection集合。当调用PooledDataSource的getConnection()方法时,将首先从该集合中获取PooledConnection对象。当一个java.sql.Connection对象用完后,MyBatis会把它包装成一个PooledConnection对象,放到这个集合中。

  在活动状态下,PooledConnection对象被放置在名为activeConnections的ArrayList中,它指示当前正在使用的PooledConnection集合。当调用PooledDataSource的getConnection()方法时,将首先从idleConnections集合中获取PooledConnection对象。如果没有,看集合是否已满。如果没有,PooledDataSource将创建一个PooledConnection,将其添加到集合中并返回。

  (视频教程推荐:java课程)

  5、SpringMVC的工作原理

  用户发送请求,被前端控制器DispatcherServlet捕获并拦截;

  DispatcherServlet调用HandlerMapping处理器映射管理对象,获得Handler处理器;

  DispatcherServlet根据Handler获取合适的适配器HandlerAdpter,HttpMessageConveter将请求信息转换为指定的响应对象;

  有了适配器,请求参数被填入处理程序,处理程序,spring开始执行处理程序(控制器)进行数据转换、数据验证和数据格式化。

  处理程序执行后,向DispatcherServlet返回ModelAndView对象;

  根据返回的ModelAndView选择合适的ViewResolver视图解析器,找到ModelAndView指定的视图;

  ViewResolver结合模型和视图来呈现显示页面;以上是多年开发经验总结出来的Java面试题——(七)的详细内容。请多关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: