随笔分类 -  并发包源码&集合容器

摘要:Java集合框架(一)-ArrayList 大佬理解->Java集合之LinkedList 1、ArrayList的特点 存放的元素有序 元素不唯一(可以重复) 随机访问快 插入删除元素慢 非线程安全 2、底层实现 底层初始化,使用一个Object类型的空对象数组,初始长度为0; 源码 //Obje 阅读全文
posted @ 2022-12-01 15:08 hanease 阅读(34) 评论(0) 推荐(0) 编辑
摘要:HashMap源码解析 5.1、对于HashMap需要掌握以下几点 Map的创建:HashMap() 往Map中添加键值对:即put(Object key, Object value)方法 获取Map中的单个对象:即get(Object key)方法 删除Map中的对象:即remove(Object 阅读全文
posted @ 2022-05-21 19:23 hanease 阅读(31) 评论(0) 推荐(0) 编辑
摘要:一、对于ArrayList需要掌握的七点内容 ArrayList的创建:即构造器 往ArrayList中添加对象:即add(E)方法 获取ArrayList中的单个对象:即get(int index)方法 删除ArrayList中的对象:即remove(E)方法 遍历ArrayList中的对象:即i 阅读全文
posted @ 2022-05-21 19:17 hanease 阅读(65) 评论(0) 推荐(0) 编辑
摘要:1、Executors与ThreadPoolExecutor ThreadPoolExecutor 可以灵活的自定义的创建线程池,可定制性很高 想创建好一个合适的线程池比较难 使用稍微麻烦一些 实际中很少使用 Executors 可以创建4种线程池,这四种线程池基本上已经包含了所有需求,将来根据业务 阅读全文
posted @ 2022-05-21 11:04 hanease 阅读(35) 评论(0) 推荐(0) 编辑
摘要:ThreadPoolExecutor使用 + 工作机理 + 生命周期 1、最基础的线程池ThreadPoolExecutor 使用方式: 1 /** 2 * ThreadPoolExecutor测试类 3 * 注意: 4 * 1、ThreadPoolExecutor是一个线程池 5 * 2、多个任务 阅读全文
posted @ 2022-05-21 10:59 hanease 阅读(45) 评论(0) 推荐(0) 编辑
摘要:1、原子类 可以实现一些原子操作 基于CAS 下面就以AtomicInteger为例。 2、AtomicInteger 在没有AtomicInteger之前,对于一个Integer的线程安全操作,是需要使用同步锁来实现的,当然现在也可以通过ReentrantLock来实现,但是最好最方便的实现方式是 阅读全文
posted @ 2022-05-21 10:53 hanease 阅读(79) 评论(0) 推荐(0) 编辑
摘要:最常用的方式: int a = 12; //注意:通常情况下,这个会设置成一个类变量,比如说Segement中的段锁与copyOnWriteArrayList中的全局锁 final ReentrantLock lock = new ReentrantLock(); lock.lock();//获取锁 阅读全文
posted @ 2022-05-21 10:43 hanease 阅读(30) 评论(0) 推荐(0) 编辑
摘要:1、对于CopyOnWriteArraySet需要掌握以下几点 创建:CopyOnWriteArraySet() 添加元素:即add(E)方法 删除对象:即remove(E)方法 遍历所有对象:即iterator(),在实际中更常用的是增强型的for循环去做遍历 注: CopyOnWriteArra 阅读全文
posted @ 2022-05-21 10:29 hanease 阅读(69) 评论(0) 推荐(0) 编辑
摘要:1、什么是CopyOnWrite容器 CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对Copy 阅读全文
posted @ 2022-05-21 10:23 hanease 阅读(101) 评论(0) 推荐(0) 编辑
摘要:1、对于ConcurrentHashMap需要掌握以下几点 Map的创建:ConcurrentHashMap() 往Map中添加键值对:即put(Object key, Object value)方法 获取Map中的单个对象:即get(Object key)方法 删除Map中的对象:即remove( 阅读全文
posted @ 2022-05-21 10:17 hanease 阅读(40) 评论(0) 推荐(0) 编辑
摘要:一、java集合框架概述 java集合可分为Collection和Map两种体系,其中: 1、Collection接口:单列数据,定义了存取一组对象的方法的集合; List:元素有序、可重复的集合 Set:元素无序,不可重复的集合 2、Map接口:双列数据,保存具有映射关系“key-value对”的 阅读全文
posted @ 2022-05-21 10:01 hanease 阅读(1196) 评论(0) 推荐(0) 编辑
摘要:1、对于LinkedBlockingQueue需要掌握以下几点 创建 入队(添加元素) 出队(删除元素) 2、创建 Node节点内部类与LinkedBlockingQueue的一些属性 static class Node<E> { E item;//节点封装的数据 /** * One of: * - 阅读全文
posted @ 2021-06-19 22:27 hanease 阅读(105) 评论(0) 推荐(0) 编辑
摘要:1、对于ArrayBlockingQueue需要掌握以下几点 创建 入队(添加元素) 出队(删除元素) 2、创建 public ArrayBlockingQueue(int capacity, boolean fair) public ArrayBlockingQueue(int capacity) 阅读全文
posted @ 2021-06-19 22:25 hanease 阅读(49) 评论(0) 推荐(0) 编辑
摘要:文章目录1 ConcurrentLinkedQueue的概述2 ConcurrentLinkedQueue的实现2.1 基本结构2.2 构造器2.2.1 ConcurrentLinkedQueue2.2.2 ConcurrentLinkedQueue( c )2.3 入队操作2.3.1 offer方 阅读全文
posted @ 2021-06-19 22:23 hanease 阅读(136) 评论(0) 推荐(0) 编辑