自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AQS之其他同步组件

Semaphore允许多个线程同时访问。Syn类实现共享模式。构造函数permits:允许访问最大线程数fair:指定是否是公平锁,默认false。 public Semaphore(int permits) { sync = new NonfairSync(permits); } public Semaphore(int permits, bool...

2019-08-13 10:57:29 112

原创 AQS之ReentrantLock,ReentrantReadWriteLock

ReentrantLock独占锁,可重入属性 private final Sync sync;实现Lock接口,重写方法 public void lock() { sync.acquire(1); } public void lockInterruptibly() throws InterruptedException { sync...

2019-08-12 22:30:22 153

原创 并发容器之队列

线程安全的队列分为阻塞队列和非阻塞队列。非阻塞队列ConcurrentLinkedQueue使用 CAS 非阻塞算法来实现线程安全,无界非阻塞队列属性 transient volatile Node<E> head; private transient volatile Node<E> tail;构造方法 public ConcurrentLin...

2019-08-12 21:15:14 109

原创 并发容器之CopyOnWriteArrayList

属性:在JDK11中,将reentrantLock改为关键字synchronized //锁 final transient Object lock = new Object(); //数组,保存数据 private transient volatile Object[] array;在CopyOnWriteArrayList中不需要想ArrayList一样记...

2019-08-12 19:41:45 133

原创 Comparable与Comparator接口

Comparable接口属于java.lang包,需要重写compareTo(Object obj)方法,obj表示要比较的对象public void test1(){Integer i1 = 3;Integer i2 = 7;System.out.println(i2.compareTo(i1));//1}在Integer、Character等类中都实现了此接口。 p...

2019-08-12 19:17:26 116

原创 并发容器之ConcurrentHashMap

目录源码分析(JDK1.8)JDK1.7ConcurrentHashMap与HashMapConcurrentHashMap与HashTable源码分析(JDK1.8)底层数据结构 数组+链表+红黑树(数组大小是2的幂次方)实现原理 采用CAS和synchronized关键字注:ConcurrentHashMap的hash算法、求桶索引与HashMap类似,不再赘述。数据结构 v...

2019-08-12 19:02:35 150

原创 Iterator接口源码分析

Iterator接口中的主要方法:public interface Iterator<E> { boolean hasNext();//判断是否有下一个元素 E next();//获取下一个元素 default void remove() {//删除元素 throw new UnsupportedOperationException("remo...

2019-08-12 17:50:15 124

原创 HashSet,LinkedHashSet源码分析

HashSetHashSet 是一个没有重复元素的集合 。由HashMap实现,不保证元素的顺序,允许null 。 private transient HashMap<E,Object> map; //定义一个静态的Object对象,来充当HashMap的value private static final Object PRESENT = new...

2019-08-12 17:02:33 94

原创 HashMap,HashTable,LinkedHashMap源码分析

Entry:static class Node<K,V> implements Map.Entry<K,V> { final int hash; final K key; V value; Node<K,V> next; Node(int hash, K key, V value,...

2019-08-12 11:43:28 177

原创 ArrayList源码分析(jdk11)

初始化方法: private static final int DEFAULT_CAPACITY = 10;//默认初始容量 /** * 用户指定容量为0时返回数组 */ private static final Object[] EMPTY_ELEMENTDATA = {}; /** * 用户调用无参构造函数,...

2019-08-11 21:14:32 508 2

空空如也

空空如也

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

TA关注的人

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