源码解读
文章平均质量分 95
Tamayo0914
这个作者很懒,什么都没留下…
展开
-
Java后端开发中验证码的实现以及Kaptcha类的详细配置介绍
验证码的本质是{id, key, value}的形式,对于不同的目标提供不同的子集内容,借助Redis的过期时间可以很好的管理验证码的有效时间。除此之外,也可以在Controller中自行设计Map容器用于代替Redis。思路如下:Map的Key仍为uuid的某种形式,Value则封装POJO。// 有效期3分钟 endTime . setTime(createTime . getTime() + 1000 * 60 * 3);} }原创 2023-03-26 17:58:57 · 4819 阅读 · 0 评论 -
AQS入门理解
一、什么是AQS1. AQS的定义AQS 的全称为 AbstractQueuedSynchronizer ,中文译为抽象队列式同步器。这个类在 java.util.concurrent.locks 包下面。这个抽象类对于JUC并发包非常重要,JUC包中的 ReentrantLock,Semaphore,ReentrantReadWriteLock,CountDownLatch 等等几乎所有的类都是基于AQS实现的。2. AQS的原理/思想如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工原创 2022-05-06 18:51:17 · 527 阅读 · 0 评论 -
看完这个文章就可以对 ArrayList 有自己的见解了
ArrayList 也是我们在写代码的过程中很常使用的一种集合类。让大家从使用易操作的数组变成使用 ArrayList 的缘由我想应该是 add 方法,能够“无忧无虑”的向 ArrayList 里存放数据,还能像数组一样用“下标”和 get 方法获得数据。那么这篇文章就对 ArrayList 这个集合类做一次简单的理解吧。一、定义先来看看这个类的作者 Josh Bloch 和 Neal Gafter 是怎么描述他们的作品的:Resizable-array implementation of the原创 2022-05-05 18:52:44 · 547 阅读 · 0 评论 -
简单的聊聊常用的HashSet
前面写完了 HashMap 的源码简单理解,不趁机把 HashSet 的源码顺带写了属实可惜,毕竟 HashSet 的实现就是靠 HashMap 来做的,源码内容很少,下面就来介绍一下。一、简单介绍HashSet 是一个没有重复元素的集合,实现了 Set 的接口。与 HashMap 一样,HashSet 也不能保证元素的顺序,也可以插入 null 值。HashSet 是基于 HashMap 实现的,只是我们使用 HashMap 的时候会传入 key 和 value ,而使用 HashSet 只会人工.原创 2022-04-29 11:11:12 · 215 阅读 · 0 评论 -
简单的理解一下 HashMap 的源码
一、数据结构基于哈希表的 Map 接口实现,是 Java 中常用的集合类框架,也是非常典型的数据结构。HashMap 的底层实现主要是数组和链表。数组的特点:存储区间是连续的,占用内存严重,空间复杂也很大,时间复杂为O(1)。优点:随机读取效率很高,随机访问性强,查找速度快。缺点:插入和删除数据效率低,因插入数据,这个位置后面的数据在内存中要往后移的,且大小固定不易动态扩展。链表的特点:区间离散,占用内存宽松,空间复杂度小,时间复杂度为O(N)。优点:插入删除速度快,内存利用率高,没有大小固定,扩展灵原创 2022-04-27 15:32:06 · 933 阅读 · 1 评论