框架面试

作者: 周重hhh | 来源:发表于2019-03-19 00:13 被阅读0次

    Struts2的优缺点

    • 优点:
      1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现
      2. 有丰富的tag可以用,大大提高开发效率
      3. 支持I18N
    • 缺点
      1. Struts2仅仅允许一个实例去处理所有的请求,所以就引起了线程安全问题
      2. 对Servlet依赖性过强
      3. 对事件支持不够

    Hibernate中的update和saveOrUpdate的区别

      1. saveorupdate():如果传入的对象在数据库中有就做update操作,如果没有就做save操作
    1. saveOrUpdate():方法可以在没有事务的情况下执行,但是如果没有手动调用flush()方法会面临关联对象不被保存的问题
    2. update():就是更新数据库中的记录

    Hibernate中Java对象的三种状态及作用

      1. 瞬时状态(Transient):不曾进行过持久化,未于session关联,不使用后会被垃圾回收
      1. 持久状态(Persistent):当前仅于一个session关联,处于持久化状态的对象在session关闭时,会将数据同步到数据库
      1. 游离状态(Detached):也称脱管状态,已经进行过持久化,但当前未于session关联

    简述Hibernate和JDBC相同点和不同点

    • 相同点:
    1. 两者都是Java的数据库操作中间件
    2. 两者对于数据库进行直接操作的对象都不是线程安全的,都需要及时关闭
    3. 两者都可以对数据库的更新操作进行显示的事务处理
    • 不同点:
    1. 使用的SQL语言不一样,JDBC的是标准SQL语言。Hibernate使用的是HQL语言
    2. 操作对象不同,JDBC操作的是数据,Hibernate操作的是对象
    3. 数据状态不同,JDBC操作的数据是"瞬时"的,Hibernate操作的数据是持久化的

    Hibernate和mybatis的相同点和不同点

    • 相同点:Hibernate与mybatis都可以通过SessionFactoryBuilder由XML配置文件生成SessionFactory,然后由SessionFactory生成Session,最后由Session来开启事务和SQL语句
    • 不同点:
    1. Hibernate是全自动,mybatis是半自动
    2. mybatis的SQL语句上比Hibernate方便很多
    3. Hibernate在缓存机制上比mybatis更好一些

    Hibernate的性能优化

    • 避免or操作,可以使用in条件来替换
    • 避免使用not,执行时该字段的索引失效,使用比较运算符替换not
    • 避免like的特殊形式,查询时,尽量少使用like

    Hibernate缓存有几种,分别的作用

    1. 一级缓存:Hibernate默认的缓存机制,它属于session级别的,也就是说session关闭,缓存数据消失
    2. 二级缓存:属于sessionFactory级别的缓存,二级缓存是全局性的,应用中所有的session都共享这个二级缓存
    3. 查询缓存:用来提高查询速度,优化查询性能,依赖于二级缓存,要使用查询缓存必须先开启二级缓存

    Hibernate中一级缓存和二级缓存的区别

    • 一级缓存:
    1. 一级缓存是Hibernate自带缓存,由系统进行维护和管理
    2. 一级缓存生命周期为session范围
    3. 当session关闭时,一级缓存中的内容会被清空
    • 二级缓存:
    1. 二级缓存是基于第三方,需要另外导入jar包

    集群和分布式的区别

    • 分布式:一个业务拆分多个子业务,部署在不同的服务器上
    • 集群:同一个业务,部署在多个服务器上

    什么是RPC

    • RPC(Remote Procedure Call)远程过程调用,是分布式系统常见的一种通信方法。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显示编码这个远程调用的细节

    Spring核心容器(应用上下文模块)概述

    • 这是基本的Spring模块,提供Spring框架的基础功能,BeanFactory是任何以Spring为基础的应用的核心。Spring框架建立在此模块之上,它使Spring成为一个容器

    BeanFactory——BeanFactory实现举例

    • Bean工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从正真的应用代码中分离
    • 最常用的BeanFactory实现的是XmlBeanFactory

    Spring自动装配有哪些局限性

    • 自动装配的局限性是:
      重写:仍需用<constructor-ary>和<property>配置来定义依赖,意味着总要重写自动装配
      基本数据类型:不能自动装配简单的属性,如基本数据类型,String字符串和类
      模糊特性:自动装配不如显示装配精确,如果有可能,建议使用显示装配

    什么是基于Java的Spring注解配置?举例?

    • 基于Java的配置,允许在少量Java注解的帮助下,进行自己的大部分Spring配置而非通过XML文件
    • 以@Configuration注解为例,它用来标记类可以当作一个bean的定义,被Spring IOC容器使用。另一个例子是@Bean注解,它表示此方法将要返回一个对象,作为一个bean注册进Spring应用上下文

    MVC的各个部分都用哪些技术来实现?如何实现?

    • Model层:可以用普通的javaBean来实现
    • View层:可以用JSP或者JS来实现
    • Controller层:可以用Struts2或者SpringMVC来实现

    相关文章

      网友评论

        本文标题:框架面试

        本文链接:https://www.haomeiwen.com/subject/pafwmqtx.html