自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 23种设计模式之状态模式和策略模式的区别

在行为类设计模式中,状态模式和策略模式是亲兄弟,两者非常相似,我们先看看两者的通用类图,把两者放在一起比较一下状态模式与策略模式很相似,确切的说状态模式包含策略模式。策略模式封装的是行为,而状态模式封装的是变化。尽管这么说,但事实上策略模式与状态模式在很多情况下都是可以互相转化的,具体应该使用何种模式,就要从上面的两个方面尽心分析,能够看得出明显状态变化的,当热要用状态模式;

2023-06-15 07:58:41 279

原创 JDK动态代理和CGLIB动态代理

如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP。如果目标对象实现了接口,可以强制使用CGLIB实现AOP。如果目标对象没有实现了接口,必须采用CGLIB库,Spring会自动在JDK动态代理和CGLIB之间转换实现InvocationHandler使用Proxy.newProxyInstance产生代理对象被代理的对象必须要实现接口CGLib必须依赖于CGLib的类库,但是它需要类来实现任何接口代理的是指定的类生成一个子类。

2023-05-16 09:31:11 172

原创 ThreadLocal 详解

ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。因为每个 Thread 内有自己的实例副本,且该副本只能由当前 Thread 使用。

2023-05-11 08:02:54 172

原创 线程池详解2

JAVA线程池原理详解二。

2023-05-10 08:11:11 93

原创 线程池详解

doneJAVA线程池原理详解一。

2023-05-10 07:58:11 37

原创 ThreadLocal

Threadlocal

2023-04-25 08:09:44 146

原创 Volatile关键字的作用

Volatile关键字的作用主要有如下两个:1.线程的可见性:当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。2. 顺序一致性:禁止指令重排序。

2023-04-14 08:40:53 73

原创 HashMap 和 currentHashMap

HashMap 和 currentHashMap

2023-04-13 08:59:40 2222

原创 HASHMAP死锁分析

此时对于线程 B 来说,当前结点e指向 a 结点,下一个结点e.next仍然指向 b 结点(此时在线程 A 的链表中,已经是c->b->a的顺序)。经历过大厂面试或者有所了解的同学都应该知道,HashMap是面试时面试官特别喜欢的问题,除了HashMap的扩容方式,为什么扩容的2的次幂等以外,还经常会问到HashMap死锁的相关问题。既然下一个结点e.next不为 null,那么当前结点e就变成了 b 结点,下一个结点e.next变为 a 结点。同时下一个结点e.next为 null,流程结束。

2023-04-12 19:26:57 774

原创 为什么HashMap的加载因子是0.75

HashMap的初始容量大小默认是16,为了减少冲突发生的概率,当HashMap的数组长度到达一个临界值的时候,就会触发扩容,把所有元素rehash之后再放在扩容后的容器中,这是一个相当耗时的操作。简单地说,就是以当前冲突位置为起点,步长为1循环查找,直到找到一个空的位置,如果循环完了都占不到位置,就说明容器已经满了。有很多东西之前在学的时候没怎么注意,笔者也是在重温HashMap的时候发现有很多可以去细究的问题,最终是会回归于数学的,如HashMap的加载因子为什么是0.75?

2023-04-10 16:50:49 190

原创 ReentrantLock详解

https://baijiahao.baidu.com/s?id=1710170618433975583&wfr=spider&for=pc

2023-03-30 16:00:43 44

原创 Thread详解

doneThread详解,这里对线程状态的转换及主要函数做一下补充。

2023-03-28 08:04:09 68

原创 AQS详解

谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。概述框架源码详解简单应用若有不正之处,请谅解和批评指正,不胜感激。

2023-03-27 17:33:37 128

原创 ReentrantLock

AQS

2023-03-27 16:00:08 39

原创 LockSupport

LockSupport

2023-03-14 16:36:32 53

原创 淘宝TMF 2.0

架构

2023-03-02 15:56:45 995

转载 重入锁原理

重入锁

2023-03-01 14:37:41 779

原创 java 各种锁

java锁

2023-02-24 11:00:46 165

原创 REDIS面经

redis面试题

2023-02-09 14:33:41 222

转载 redis失效策略和删除策略

redis失效策略

2023-02-07 16:43:54 1488

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除