分类:: Guava

0

Guava优美代码-21-反射

Guava中的反射工具类我们很多时候需要在运行时获取相关类的信息,比如它的方法有哪些,它的父类是什么,它的字段有哪些等等。其实这些JDK已经为我们做得很好了,我个人还是比较喜欢欣赏JDK里面做的反射处理的。不过这里为什么要讲Guava里面的反射呢?因为Guava对于JDK做了大量的封装和优化,最简单的比如动态代理,以前我们JDK里面要写一大堆,现在用Guava就能很方便的实现了。下面分别介绍Gua

0

Guava优美代码-20-Math

Guava中的数学数学处理有很多种方式,JDK里面也为我们提供相应的方法,为什么这里我们需要使用Guava里面方法呢?主要由以下几点原因: Guava Math针对各种不常见的溢出情况都有充分的测试;对溢出语义,Guava文档也有相应的说明;如果运算的溢出检查不能通过,将导致快速失败; Guava Math的性能经过了精心的设计和调优;虽然性能不可避免地依据具体硬件细节而有所差异,但Guava

0

Guava优美代码-19-EventBus

Guava事件总线EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。 对于观察者模式,我这里就不再赘述了,大家可以去我的另一篇博文《设计模式学习之观察者模式(Observer)》里面详细了解观察者模式。 EventBus使用实例单事件监

0

Guava优美代码-18-哈希

Guava哈希算法Java内建的散列码(hash code)概念被限制为32位,并且没有分离散列算法和它们所作用的数据,因此很难用备选算法进行替换。此外,使用Java内建方法实现的散列码通常是劣质的,部分是因为它们最终都依赖于JDK类中已有的劣质散列码。 Object.hashCode往往很快,但是在预防碰撞上却很弱,也没有对分散性的预期。这使得它们很适合在散列表中运用,因为额外碰撞只会带来轻微的

0

Guava优美代码-17-IO操作

Guava文件IO操作博主认为JDK中属文件IO的操作最麻烦而且最容易出错了,比如什么Stream啊,Reader啊,太多了,时间长了就容易记不住,经常写的话还是OK的,因为很熟练嘛,哈哈!那有没有什么方法能解放我们的文件操作呢?答案是Guava!Guava为我们提供了文件IO的各种工具类,其中使用最多的就是Files。下面我们仔细讨论Files的具体使用方式。 Files使用实例(1) 读文件1

0

Guava优美代码-16-区间

Guava区间Range区间,有时也称为范围,是特定域中的凸性(非正式说法为连续的或不中断的)部分。在形式上,凸性表示对a<=b<=c, range.contains(a)且range.contains(c)意味着range.contains(b)。 Range的表示形式 区间 数学表达式 (a..b) {a < x < b} [a..b] {a <=

0

Guava优美代码-15-基本类型

Guava基本类型关于基本类型,我们在Java中有:byte、short、int、long、float、double、char和boolean。我们知道除了这些之外,还有关于这些基本类型的包装类:Byte、Short、Integer、Long、Float、Double、Character和Boolean。原因是这些基本类型没法当成对象或者泛型的参数使用。这意味着许多通用的方法都不支持它们。基于这个

0

Guava优美代码-14-Strings

Guava字符串处理字符串不管在什么时候都是我们最为关心的,尤其是从事Web开发的朋友,字符串的各种操作也都是工作中必备的技能。Google也看到了我们广大的开发者处理字符串的痛点,于是他们为我们带来了Strings的工具类,这个工具类套件包含了很多有用的类,比如Strings类本身,还有用于分割的Splitter类,用于连接的Joiner类以及用于字符串匹配的CharMatcher类等等。下面我

0

Guava优美代码-13-Predicate

Guava函数式编程上一节篇文章我们说了Guava的Function函数的用法,这一节我们来说一说Predicate预言。Predicate的使用也是非常多的,因此读者朋友们也需要多多重视Predicate的用法。简单说一下Predicate和Function的区别,你可以理解为Predicate主要是用来判断一些条件成不成立的,而Function主要是用来执行一些操作的,侧重点不同。 Predi

0

Guava优美代码-12-Function

Guava函数式编程关于函数式编程,好像越来越多的编程语言都开始逐渐支持这个特性,最明显的就是python,javascript,还有Swift等等。Java终于在1.8中支持了函数式编程,但是在JDK1.8推出来以前,Guava就为我们提供了强大的函数式编程框架–Function。 Function和FunctionsFunction<A, B>,它声明了单个方法B apply(A