JAVA面试锦囊(八)

本文探讨了Hibernate的一级和二级缓存机制,包括它们的特点和适用场景,并深入讨论了MyISAM与InnoDB存储引擎的区别,帮助读者理解在不同业务场景下如何选择合适的数据存储引擎。

● 简单介绍Hibernate的缓存?

hibernate一级缓存又称为“Session缓存”。

    Session缓存内置不能卸载,Session的缓存是事务范围的缓存,即Session对象的生命周期通常对应一个数据库事务或者一个应用事务。

hibernate二级缓存又称为“SessionFactory缓存”。

    由于SessionFactory对象的生命周期和应用程序的整个过程对应,因此Hibernate二级缓存是进程范围或者集群范围的缓存,有可能存在并发问题,因此需要采用适当的并发访问策略,该策略为被缓存数据提供了事务隔离级别。

    第二级缓存是可选的,是一个可配置的插件,默认SessionFactory不会启用这个插件,需要手动开启。

    Hibernate提供org.hibernate.cache.CacheProvider接口,它充当缓存插件与Hibernate之间的适配器。

什么数据需要存放在第二级缓存中?

1) 很少被修改的数据

2) 经常被查询的数据

3) 不是很重要的数据,允许出现偶尔并发的数据,不会被并发访问的数据。

4) 常量数据。

Hibernate的二级缓存默认是不支持分布式缓存,使用memcaheredis等中央缓存来代替二级缓存。

● WebService的使用场景

        webservice是一个SOA的架构,它不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间交互。

(1) 异构系统的整合

(2) 不同客户端的整合

● 如何操作Linux?

    使用xshell来连接服务器,使用xftp来实习文件上传下载。连接和上传、下载必须依赖于服务器的sshsftp服务

● 如何选择适当的数据数引擎?

在开发中,我们经常使用的存储引擎MyISAM/innodb/memory。

MyISAM存储引擎:没有事务要求,同时是以查询和添加为主,我们考虑MyISAM 存储引擎,比如bbs中的发帖表,回复表。

Innodb存储引擎:对事务要求高,保存的数据都是重要数据,我们建议使用innodb,比如订单表,账号表。

Memory存储引擎:我们数据变化频繁,不需要入库,同时有频繁的查询和修改,我们考虑使用memory,速度极快。

● MyISAM与Innodb有什么区别?、

(1) 事务安全MyISAM不支持事务,而Innodb支持。

(2) 查询和添加速度MyISAM更快。

(3) 支持全文检索。MyISAM支持,Innodb不支持。

(4) MyISAM只支持表锁,而Innodb还支持行锁(事务)。

(5) MyISAM不支持外键,而Innodb支持。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值