八股
文章平均质量分 96
不啻梦呓
前面忘了后面忘了反正学java狠赚笔
展开
-
分布式事务
TCC模式的每个阶段是做什么的?Try:资源检查和预留Confirm:业务执行和提交Cancel:预留资源的释放TCC的优点是什么?一阶段完成直接提交事务,释放数据库资源,性能好相比AT模型,无需生成快照,无需使用全局锁,性能最强不依赖数据库事务,而是依赖补偿操作,可以用于非事务型数据库TCC的缺点是什么?有代码侵入,需要人为编写try、Confirm和Cancel接口,太麻烦软状态,事务是最终一致。原创 2024-07-31 16:44:13 · 1020 阅读 · 0 评论 -
Seata
解决分布式事务的方案有很多,但实现起来都比较复杂,因此我们一般会使用开源的框架来解决分布式事务问题。在众多的开源分布式事务框架中,功能最完善、使用最多的就是阿里巴巴在2019年开源的Seata了。原创 2024-07-31 15:48:52 · 1059 阅读 · 0 评论 -
HashMap与ConcurrentHashMap
的高 16 位异或低 16 位实现的:``(h = k.hashCode()) ^ (h >>> 16)`,主要是从速度,功效和质量来考虑的,通过位移运算来提升Hash值的散列度,降低Hash冲突的概率从而减少系统的开销。,比如table 数组大小为 16,装载因子为 0.75 时,threshold 就是12,当 table 的实际大小超过 12 时,table就需要动态扩容;如果数据很大的情况下,扩展时将会带来性能的损失,在性能要求很高的地方,这种损失很可能很致命。JDK 1.8 中,是通过。原创 2024-07-22 11:07:26 · 1136 阅读 · 0 评论 -
CompletableFuture使用详解
CompletableFuture是jdk8的新特性。CompletableFuture实现了CompletionStage接口和Future接口,前者是对后者的一个扩展,增加了异步会点、流式处理、多个Future组合处理的能力,使Java在处理多任务的协同工作时更加顺畅便利。原创 2024-07-10 11:02:01 · 1214 阅读 · 0 评论 -
Future使用详解
/ 取消任务// 获取任务执行结果// 获取任务执行结果,带有超时时间限制// 判断任务是否已经取消// 判断任务是否已经结束。原创 2024-07-09 14:31:18 · 983 阅读 · 1 评论 -
Redis八股
我们知道,当请求查询缓存未命中时,需要查询数据库以加载缓存。但是大家思考一下这样的场景:如果我访问一个数据库中也不存在的数据。会出现什么现象?由于数据库中不存在该数据,那么缓存中肯定也不存在。因此不管请求该数据多少次,缓存永远不可能建立,请求永远会直达数据库。假如有不怀好意的人,开启很多线程频繁的访问一个数据库中也不存在的数据。由于缓存不可能生效,那么所有的请求都访问数据库,可能就会导致数据库因过高的压力而宕机。缓存空值布隆过滤器。原创 2024-07-08 14:45:40 · 1361 阅读 · 0 评论