Comparable 和 Comparator 的原理及适用场景浅析
Comparable 某个类只要实现了 Comparable 接口就能够让自身拥有可以被排序的能力,排序能力是通过 compareTo(Object obj) 这个方法来实现的。 基本类型排序 一个基本类型要参与排序自然是用当前的值和需要比...
Comparable 某个类只要实现了 Comparable 接口就能够让自身拥有可以被排序的能力,排序能力是通过 compareTo(Object obj) 这个方法来实现的。 基本类型排序 一个基本类型要参与排序自然是用当前的值和需要比...
前言 KMP(Knuth Morris Pratt) 算法的核心思想是让模式串中的字符挨个和主串中的进行比对,直到找到了一个他们不一致的的字符,这个字符就记作坏字符,前面已经匹配成的记作好前缀,然后从中寻找某种规律尽可能的向后多移动几位数字...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
BM 算法原理 BM 算法分为两部分 坏字符规则 好后缀规则 将这两大规则结合使用就能高效的完成字符串匹配,在讲述这 2 个规则前先了解几个概念 主串与模式串 如图我们需要在字符串 abcacabdc 中查找是否存在 cbd 这个字符串,那...
总览 服务调用整体来看就分为两步,本文以 zookeeper 作为注册中心,以及默认的 dubbo 协议讲解 1、 客户端从注册中心获取远程服务地址 2、 客户端通过远程服务地址发起调用 但是细分来看的话其中细节就多了,有很多需要思考的问题...
前言 搞懂这篇文章的前提是对 Lock 的几种实现以及 AQS 的源码原理有一定了解,如果不了解的话可以看下 Lock 中的 AQS、独占锁、重入锁、读锁、写锁、Condition 源码原理分析,本文源码未贴出来自己去翻下然后跟着图的调用逻...
引言 当我们需要在多线程的环境中使用 Map 的时候我们可能就会想到 SynchronizedMap ConcurrentHashMap SynchronizedMap 就是对 HashMap 的一些需要同步的方法做了进行了一层同步包装,调...
前言 除去使用 synchronized 隐式加锁的方式外,我们可以使用 Lock 更加灵活的控制加锁、解锁、等待和唤醒等操作 Java 中的 Lock 有如下几种实现 重入锁(ReentrantLock) 读写锁(ReentrantRea...
引言 现目前处理分布式事务的方案有很多,比如 基于 XA 协议的方案 基于 TCC 协议方案 基于 SAGA 协议的方案 而实现了对应的协议的有 在 Java 中基于 XA 协议实现的框架有 Atomikos,JOTM 等框架 TCC 协议...
CAP 理论 一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这其中这两项 一致性(Consistency) 指所有节点在同一时间看到的...
总览线程池工作机制 新任务来到的时候,先去判断核心线程池数量(corePoolSize)满了没有,如果没有满那么创建一个 Worker 去执行这个任务。 某一时刻发现核心线程池数量满了,那么这个任务就暂时放到 workQueue 中去了。后...