摘要:
基于版本:Guava 22.0 Wiki:Immutable collections 0. ImmutableCollection简介 类似于JDK的Collections.unmodifiableXXX,可以创建不可变集合,是一种防御式编程的体现。 1. 类图 这张类图也不完全,Immutable 阅读全文
摘要:
基于版本:Guava 22.0 Wiki:Ordering 0. Ordering简介 Guava的Ordering提供了链式风格的比较器的实现,我们可以用Ordering轻松构建复杂的比较器。 1. 类图 这张类图不完全,实际上Ordering有十几个子类,这些子类共同提供了复杂的功能。 2. 设 阅读全文
摘要:
基于版本:Guava 22.0 Wiki:Using and avoiding null 0:Optional简介 null在很多场景下会引发问题,NullPointerException困扰过无数的程序员,Guava用快速失败的思路来显式的解决null问题 ps:JDK1.8也提供了Optiona 阅读全文
摘要:
Guava是由Google出品的Java类库,功能强大且易用。 后续我会用多篇博客介绍Guava的使用方法,以及从源码层面分析其实现原理。 分析次序基于Guava的官方Wiki 基于版本:Guava 22.0 (发布时间2017年5月23日) 阅读全文
摘要:
众所周知,无限制下多线程操作共享变量是危险的,为了保证线程安全语义,一般的建议是在操作共享变量时加锁,比方说在用synchronized关键字修饰的方法内读写共享变量。 但是synchronized开销较大,有没有更轻量更优雅的解决方案呢? volatile是轻量级的synchronized,在正确 阅读全文
摘要:
基于版本jdk1.7.0_80 java.util.concurrent.locks.ReentrantReadWriteLock 代码如下 /* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * 阅读全文
摘要:
基于版本jdk1.7.0_80 java.util.concurrent.FutureTask 代码如下 /* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * 阅读全文
摘要:
基于版本jdk1.7.0_80 java.util.concurrent.CopyOnWriteArrayList 代码如下 /* * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. * ORA 阅读全文
摘要:
基于版本jdk1.7.0_80 java.util.concurrent.ScheduledThreadPoolExecutor 代码如下 /* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * 阅读全文
摘要:
基于版本jdk1.7.0_80 java.util.concurrent.ThreadPoolExecutor 代码如下 /* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * 阅读全文