04 2020 档案

摘要:众所周知的几个知识点 volatile保证了可见性和有序性,仅在32位long、double类型保证原子性; synchronized保障了原子、有序、可见性,实际上是内部锁; 显式的可重入锁ReentrantLock或者一些工具类如Semaphore, CountDownLatch保障原子、有序、 阅读全文
posted @ 2020-04-26 17:40 昕友软件开发 阅读(786) 评论(0) 推荐(0) 编辑
摘要:要点 ConcurrentHashMap是HashMap的线程安全版本; 不允许[key,value]为null; 比Hashtable锁粒度更细; 采用CAS和synchronized来保证并发安全。数据结构跟HashMap1.8的结构一样,数组+链表/红黑二叉树; 负载因子0.75; 默认初始化 阅读全文
posted @ 2020-04-16 18:43 昕友软件开发 阅读(285) 评论(0) 推荐(0) 编辑
摘要:在原子类持续累加或累减时,比如AtomicInteger的incrementAndGet时,是不存在ABA问题的,但compareAndSet或者updateAndGet是可能存在ABA问题,像AtomicBoolean或AtomicLong等这样的变量在多线程修改时,也都存在ABA的问题。为了理解 阅读全文
posted @ 2020-04-16 11:36 昕友软件开发 阅读(324) 评论(0) 推荐(0) 编辑
摘要:ArrayBlockingQueue是一个基于数组实现的有界的阻塞队列。 几个要点 ArrayBlockingQueue是一个用数组实现的队列,所以在效率上比链表结构的LinkedBlockingQueue要快一些,但是队列长度固定,不能扩展,入列和出列使用同一把锁。LinkedBlockingQu 阅读全文
posted @ 2020-04-15 18:23 昕友软件开发 阅读(293) 评论(0) 推荐(0) 编辑
摘要:ArrayList是非线程安全的,Vector虽是线程安全的,但由于简单粗暴的锁同步机制,性能较差。而CopyOnWriteArrayList则提供了另一种不同的并发处理策略(当然是针对特定的并发场景)。 很多时候,我们的系统应对的都是读多写少的并发场景。CopyOnWriteArrayList容器 阅读全文
posted @ 2020-04-15 16:38 昕友软件开发 阅读(257) 评论(0) 推荐(0) 编辑
摘要:几个要点 LinkedList的底层数据结构是双向链表;LinkedList继承于AbstractSequentialList的双向链表,实现List接口,因此也可以对其进行队列操作,它也实现了Deque接口,所以LinkedList也可当做双端队列使用;LinkedList是非同步的;和 Arra 阅读全文
posted @ 2020-04-14 13:58 昕友软件开发 阅读(326) 评论(0) 推荐(0) 编辑
摘要:几个要点 ArrayList非线程安全; ArrayList基于动态数组,是一种线性表。随机访问友好,其可以保证在 O(1) 复杂度下完成随机查找操作,插入和删除效率低; ArrayList 实现了RandmoAccess接口,即提供了随机访问功能。RandmoAccess是java中用来被List 阅读全文
posted @ 2020-04-14 10:08 昕友软件开发 阅读(303) 评论(0) 推荐(0) 编辑
摘要:几个要点 HashTable底层的数据结构基于链表(O(n))的数组; HashTable不允许空key和空value; HashMap元素非按照写入时顺序排序,而是按Key的hash取n模来排序(算法优化采用(n - 1) & hash) HashTable线程安全类,但它是直接在方法上使用syn 阅读全文
posted @ 2020-04-11 12:32 昕友软件开发 阅读(526) 评论(0) 推荐(0) 编辑
摘要:几个要点 HashMap底层的数据结构基于链表(O(n))和红黑树(O(logN))的数组; HashMap允许空key和空value; HashMap元素非按照写入时顺序排序,而是按Key的hash取n模来排序(算法优化采用(n - 1) & hash) HashMap非线程安全类,Hashtab 阅读全文
posted @ 2020-04-10 13:52 昕友软件开发 阅读(255) 评论(0) 推荐(0) 编辑
摘要:整理出近几年的随笔笔记分类。 #Java多线程开发系列 Java多线程开发系列-基础 Java多线程开发系列-线程间协作 Java多线程开发系列-线程安全设计 Java多线程开发系列-线程活性故障 Java多线程开发系列-线程管理 CompletableFuture组合异步编程 Swing中的线程并 阅读全文
posted @ 2020-04-08 15:59 昕友软件开发 阅读(488) 评论(0) 推荐(0) 编辑
摘要:Selenium 是目前用的最广泛的Web UI 自动化测试框架,核心功能就是可以在多个浏览器上进行自动化测试。支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome,多语言C、 java、ruby、python...Selenium ID 阅读全文
posted @ 2020-04-08 10:28 昕友软件开发 阅读(489) 评论(0) 推荐(0) 编辑

欢迎访问我的开源项目:xyIM企业即时通讯
点击右上角即可分享
微信分享提示