KEEP EXPLORING

更多值得阅读的内容。

第 32 页 · 持续积累的技术实践

⌘探索技术专题找到你的下一站Agent16 篇文章 ↗Java550 篇文章 ↗Spring567 篇文章 ↗架构运维313 篇文章 ↗面试与职场68 篇文章 ↗

最新文章

持续更新的技术实践

Java 集合使用问题集

ava 集合概览 Java 集合,也叫作容器,主要是由两大接口派生而来:一个是 Collection 接口,主要用于存放单一元素;另一个是 Map 接口,主要用于存放键值对。对于 Collection 接口,下面又有三个主要的子接口: List 、 Set 、 Queue 。 Java 集合框架如下图所示:…

Java 集合介绍

集合判空 《阿里巴巴 Java 开发手册》的描述如下: 判断所有集合内部的元素是否为空,使用 isEmpty() 方法,而不是 size()==0 的方式。 这是因为 isEmpty() 方法的可读性更好,并且时间复杂度为 O(1) 。 绝大部分我们使用的集合的 size() 方法的时间复杂度也是 O(1) ,不过,也有很多复杂度不是 O(1) 的,比如…

Java ConditionObject 介绍(一)

前言 在介绍 AQS 时,其中有一个内部类叫做 ConditionObject,当时并没有进行介绍,并且在后续阅读源码时,会发现很多地方用到了 Condition ,这时就会很诧异,这个 Condition 到底有什么作用?那今天就通过阅读 Condition 源码,从而弄清楚 Condition 到底是做什么的?当然阅读这篇文章的时候希望你已经阅读了…

Java AQS 介绍(二)

/** * 根据上一个节点的状态,判断当前线程是否应该被阻塞 * SIGNAL -1 :当前节点释放或者取消时,必须 unpark 他的后续节点。 * CANCELLED 1 :由于超时(timeout)或中断(interrupt),该节点被取消。节点永远不会离开此状态。特别是,具有取消节点的线程永远不会再次阻塞。 * CONDITION -2…

Java AQS 介绍(一)

前言 AbstractQueuedSynchronizer 抽象队列同步器,简称 AQS 。是在 JUC 包下面一个非常重要的基础组件,JUC 包下面的并发锁 ReentrantLock CountDownLatch 等都是基于 AQS 实现的。所以想进一步研究锁的底层原理,非常有必要先了解 AQS 的原理。…

一次彻底讲清如何处理mysql 的死锁问题

MySQL 死锁 是指两个或多个事务互相等待对方持有的锁,从而导致所有事务都无法继续执行的现象。在 InnoDB 存储引擎中,死锁是通过锁机制产生的,特别是在并发较高、业务逻辑复杂的情况下,更容易发生死锁。 一、MySQL 死锁的成因 MySQL 的死锁一般发生在 行级锁 上。常见的死锁成因包括: 事务 A 和事务 B 持有互相需要的锁 :事务 A…

一文彻底弄懂mysql的事务日志,undo log 和 redo log

在数据库事务管理中, Undo Log 和 Redo Log 是两种关键日志,用于保障事务的 原子性 和 持久性 。它们的作用是确保数据库在出现崩溃、断电、宕机等故障时,能够进行恢复操作,从而保障数据一致性和完整性。它们通常用于支持事务的 ACID 特性中的 原子性 和 持久性 。下面将分别介绍 Undo Log 和 Redo Log…

一文彻底弄懂MySQL的MVCC多版本控制器

InnoDB 的 MVCC(Multi-Version Concurrency Control,多版本并发控制) 是 MySQL 实现高并发事务处理的一种机制。通过 MVCC,InnoDB 可以在高并发环境下支持 事务隔离 ,并提供 非阻塞的读操作 ,从而避免锁定所有读操作带来的性能瓶颈。MVCC 允许事务在不加锁的情况下读取数据,保证了性能和一致性。…

一文彻底弄清Redis的布隆过滤器

布隆过滤器(Bloom Filter)是一种空间效率极高的数据结构,用于快速判断一个元素是否在集合中。它能够节省大量内存,但它有一个特点:可能存在误判,即可能会认为某个元素存在于集合中,但实际上不存在;而对于不存在的元素,它保证一定不会误判。布隆过滤器适合在对存储空间要求极为严格,同时能接受少量误判的应用场景中使用。 1. 布隆过滤器的工作原理…