1.Comparator位于包java.util下,而Comparable位于包java.lang下 2.Comparable接口将比较代码嵌入自身类中,而Comparator在一个独立的类中实现比较。 3.Comparator接口的比较方法compare(A,B)有两个参数,Comparable的比较方法compareTo(A)只有1个参数 a.compareTo(obj):如果a大于形参对象obj,则返回1; compare(Objecto1,Objecto2):如果o1大于o2,返回正整数 两个方法都是左边大于右边返回正数,默认从小到大排列 //定制排序的用法,此时从大到小排列 Coll...

  4tL4ZMVO3WNd   2023年11月01日   48   0   0 Java

1、三种常用的缓存模式 1.旁路缓存模式 一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求“缓存+数据库”必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去。 采用缓存+数据库读写的方式,就是CacheAsidePattern(旁路缓存模式)。 读的时候,先读缓存,缓存没有的话,就读数据库,然后取出数据后放入缓存,同时返回响应。 更新的时候,先更新数据库,然后再删除缓存。 2.读写穿透模式 Read/WriteThroughPattern中服务端把cache视为主要数据存储,从中读取数据并将数据写入其中。cac...

  4tL4ZMVO3WNd   2023年11月01日   61   0   0 NoSQL

MySQL为什么RR隔离级别添加了间隙锁还是无法解决幻读问题? 什么是幻读? 幻读本质上也属于不可重复读的情况,T1读取某个范围的数据,T2在这个范围内插入或者删除新的数据,T1再次读取这个范围的数据,此时读取的结果和和第一次读取的结果不同。 我的理解 我的理解是:间隙锁只能保证范围内的键不被插入,无法保证范围内的键不被删除。如果在事务执行期间另一个事务删除了该范围内的某一行数据,原事务再次查询时就会发现出现了幻读。 比如索引1,3有数据,然后加了间隙锁,那么查询1-3之间的数据的时候,会查询到两条记录。并且因为间隙锁的存在,所以无法添加数据。但是索引1或者3本身所代表的数据可能会被删除,所以...

  4tL4ZMVO3WNd   2023年11月01日   128   0   0 MySQL
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~