摘要:
在原子类持续累加或累减时,比如AtomicInteger的incrementAndGet时,是不存在ABA问题的,但compareAndSet或者updateAndGet是可能存在ABA问题,像AtomicBoolean或AtomicLong等这样的变量在多线程修改时,也都存在ABA的问题。为了理解 阅读全文
摘要:
ArrayBlockingQueue是一个基于数组实现的有界的阻塞队列。 几个要点 ArrayBlockingQueue是一个用数组实现的队列,所以在效率上比链表结构的LinkedBlockingQueue要快一些,但是队列长度固定,不能扩展,入列和出列使用同一把锁。LinkedBlockingQu 阅读全文
摘要:
ArrayList是非线程安全的,Vector虽是线程安全的,但由于简单粗暴的锁同步机制,性能较差。而CopyOnWriteArrayList则提供了另一种不同的并发处理策略(当然是针对特定的并发场景)。 很多时候,我们的系统应对的都是读多写少的并发场景。CopyOnWriteArrayList容器 阅读全文
摘要:
几个要点 LinkedList的底层数据结构是双向链表;LinkedList继承于AbstractSequentialList的双向链表,实现List接口,因此也可以对其进行队列操作,它也实现了Deque接口,所以LinkedList也可当做双端队列使用;LinkedList是非同步的;和 Arra 阅读全文
摘要:
几个要点 ArrayList非线程安全; ArrayList基于动态数组,是一种线性表。随机访问友好,其可以保证在 O(1) 复杂度下完成随机查找操作,插入和删除效率低; ArrayList 实现了RandmoAccess接口,即提供了随机访问功能。RandmoAccess是java中用来被List 阅读全文
摘要:
几个要点 HashTable底层的数据结构基于链表(O(n))的数组; HashTable不允许空key和空value; HashMap元素非按照写入时顺序排序,而是按Key的hash取n模来排序(算法优化采用(n - 1) & hash) HashTable线程安全类,但它是直接在方法上使用syn 阅读全文
摘要:
几个要点 HashMap底层的数据结构基于链表(O(n))和红黑树(O(logN))的数组; HashMap允许空key和空value; HashMap元素非按照写入时顺序排序,而是按Key的hash取n模来排序(算法优化采用(n - 1) & hash) HashMap非线程安全类,Hashtab 阅读全文
摘要:
整理出近几年的随笔笔记分类。 #Java多线程开发系列 Java多线程开发系列-基础 Java多线程开发系列-线程间协作 Java多线程开发系列-线程安全设计 Java多线程开发系列-线程活性故障 Java多线程开发系列-线程管理 CompletableFuture组合异步编程 Swing中的线程并 阅读全文
摘要:
Selenium 是目前用的最广泛的Web UI 自动化测试框架,核心功能就是可以在多个浏览器上进行自动化测试。支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome,多语言C、 java、ruby、python...Selenium ID 阅读全文
摘要:
结构设计模式向您展示了如何以灵活和可扩展的方式将系统的不同部分粘合在一起。它们可以帮助您保证当其中一个部分发生更改时,整个结构不需要更改。这些模式关注的是类之间如何相互继承,以及它们是如何由其他类组成的。结构模式使用继承来组合接口或实现。 适配器模式 适配器模式(Adapter Pattern)是作 阅读全文