08 2017 档案
摘要:1. 双亲委派模型 JVM内置了三个ClassLoader Bootstrap ClassLoader:负责加载%JAVA_HOME%/lib目录中的class(比方说rt.jar里的class),这个ClassLoader是JVM底层实现的,我们无法直接操作 Extension ClassLoad
阅读全文
摘要:Guice是Google开发的一个开源轻量级的依赖注入框架,运行速度快,使用简单。 项目地址:https://github.com/google/guice/ 最新的版本是4.1,本文基于此版本。 0. 什么是依赖注入? 依赖注入(Dependency Injection)是一种思想。 在一般的编程
阅读全文
摘要:基于版本:Guava 22.0 Wiki:EventBus 0. EventBus简介 提供了发布-订阅模型,可以方便的在EventBus上注册订阅者,发布者可以简单的将事件传递给EventBus,EventBus会自动将事件传递给相关联的订阅者。 支持同步/异步模式。 只能用于线程间通信。 1.
阅读全文
摘要:基于版本:Guava 22.0 Wiki:New collection types 0. 简介 Guava提供了很多好用的集合工具,比如Multiset和BiMap,本文介绍了这些新集合类型的使用方式与实现原理。 1. Multiset a. 简介 一般的Set会对相同元素去重,而Multiset则
阅读全文
摘要:基于版本: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日)
阅读全文