自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java值传递,引用传递,常量传递

传统版

2021-08-11 10:59:49 241

原创 集合类不安全案例(并发修改异常,ConcurrentModificationException)及解决方式(ArrayList,HashSet,HashMap)

ArrayList 初始值是10 扩容一半往上加 Arrays.CopyOf CopyOnWriteArrayList 源码 写时复制 读写分离 HashSet 底层是什么 就是HashMap 初始值16 负载因子0.75的 value是一个常量 实际存的值是key,所以保证了唯一性 CopyOnWriteArraySet JUC包下 底层还是CopyOnWriteArrayList ...

2021-08-11 10:55:38 78

原创 CountDownLatch/CyclicBarrier/Semaphore使用方法

public enum CountryEnum{ ONE(1,"齐"),TWO(2,"楚"),THREE(3,"燕"),FOUR(4,"赵"),FIVE(5,"魏"),SIX(6,"韩"); @Getter private Integer retCode; @Getter private String retMessage;CountryEnum(Integer retCode, String retMessage){ this.retCode...

2021-08-11 10:46:30 48

原创 Callable接口使用,和Runnable接口的区别

用运场景 多个任务串行执行,有一个任务耗时较久,可以作为单独的任务独立执行,或需要返回值的场景,支付等等。 区别 1.Callable接口有异常抛出,Runnable接口没有。 2.Callable接口有返回值,Runnable接口没有 如何使用 FutureTask类继承RunnableFuture接口继承Runnable接口 FutureTask类有构造方法 public FutureTask(Callable<V> callable) { if (callable

2021-08-10 11:31:28 94

原创 synchronized和lock有什么区别,synchronized什么时候是对象锁,什么时候是全局锁。

synchronized(this)以及非static的synchronized方法,锁住的是括号里()的对象,如果要锁全局,就用synchronized(对象.class)。 static 的synchronized方法,static方法可以直接类名.方法名()调用,无法使用this,所以它锁的不是this,而是类的Class对象。所以静态方法也相当于全局锁,锁住了代码段。 具体看下面的代码 对象锁和全局锁区别: 对象锁:锁的是这个对象。 全局锁:锁的是那个写了synchronized关键字的方法

2021-08-10 10:50:09 278

原创 线程通信之生产者消费者传统版、阻塞队列版

传统版 package com.example.demo; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; class ShareData // 资源类 { private int number = 0; private Lock lock = new Reentra.

2021-08-10 10:38:20 86

原创 volatile--->CAS ---> Unsafe ---> CAS底层思想(自旋锁) ---> ABA ---> 原子引用更新 ---> 如何规避ABA问题

volatile提供轻量级同步机制 3大特性 保证可见性 不保证原子性 禁止指令重排 首先明白JMM java内存模型 JMM 可见性 原子性 有序性 package com.example.demo; import java.util.concurrent.TimeUnit; /** * @author chenxf * @create 2021-07-24 18:20 * 验证volatile的可见性 * 假如 int number = 0; number变量之前...

2021-08-08 22:15:45 157

原创 阻塞队列相关

7种阻塞队列 重点使用标红 阻塞队列核心方法 put和take取不到会阻塞 package com.example.demo; import java.util.ArrayList; import java.util.List; import java.util.concurrent.BlockingQueue; import java.util.concurrent.SynchronousQueue; import java.util.concurr...

2021-08-02 21:59:35 52

空空如也

空空如也

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

TA关注的人

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