Guava 12-数学运算
摘要:范例 为什么使用Guava Math Guava Math针对各种不常见的溢出情况都有充分的测试;对溢出语义,Guava文档也有相应的说明;如果运算的溢出检查不能通过,将导致快速失败; Guava Math的性能经过了精心的设计和调优;虽然性能不可避免地依据具体硬件细节而有所差异,但Guava Ma
阅读全文
posted @
2016-11-10 23:34
duanxz
阅读(1196)
推荐(0) 编辑
Guava 10-散列
摘要:概述 Java内建的散列码[hash code]概念被限制为32位,并且没有分离散列算法和它们所作用的数据,因此很难用备选算法进行替换。此外,使用Java内建方法实现的散列码通常是劣质的,部分是因为它们最终都依赖于JDK类中已有的劣质散列码。 Object.hashCode往往很快,但是在预防碰撞上
阅读全文
posted @
2016-11-10 23:32
duanxz
阅读(853)
推荐(0) 编辑
Guava 8-区间
摘要:范例 简介 区间,有时也称为范围,是特定域中的凸性(非正式说法为连续的或不中断的)部分。在形式上,凸性表示对a<=b<=c, range.contains(a)且range.contains(c)意味着range.contains(b)。 区间可以延伸至无限——例如,范围”x>3″包括任意大于3的值
阅读全文
posted @
2016-11-10 23:31
duanxz
阅读(835)
推荐(0) 编辑
Guava 9-I/O
摘要:字节流和字符流 Guava使用术语”流” 来表示可关闭的,并且在底层资源中有位置状态的I/O数据流。术语”字节流”指的是InputStream或OutputStream,”字符流”指的是Reader 或Writer(虽然他们的接口Readable 和Appendable被更多地用于方法参数)。相应的
阅读全文
posted @
2016-11-10 23:31
duanxz
阅读(1199)
推荐(0) 编辑
在Eclipse里静态导入
摘要:静态导入import static 介绍见import static和import的区别 在Eclipse里配置静态导入,步骤见下面截图的箭头 例如导入下面的jar 常用的静态导入方法如下: com.google.common.base.Preconditions com.google.common
阅读全文
posted @
2013-12-26 17:06
duanxz
阅读(1287)
推荐(0) 编辑
一篇关于apache commons类库的详解
摘要:1.1. 开篇 在Java的世界,有很多(成千上万)开源的框架,有成功的,也有不那么成功的,有声名显赫的,也有默默无闻的。在我看来,成功而默默无闻的那些框架值得我们格外的尊敬和关注,Jakarta Commons就是这样的一个框架。如果你至少参与了一个中型规模的Java项目,那么我想有超过一大半的机
阅读全文
posted @
2013-12-21 11:35
duanxz
阅读(2222)
推荐(0) 编辑
Guava 2.2-新集合类型
摘要:Guava引入了很多JDK没有的、但我们发现明显有用的新集合类型。这些新类型是为了和JDK集合框架共存,而没有往JDK集合抽象中硬塞其他概念。作为一般规则,Guava集合非常精准地遵循了JDK接口契约。 Multiset 统计一个词在文档中出现了多少次,传统的做法是这样的: 这种写法很笨拙,也容易出
阅读全文
posted @
2012-11-04 17:05
duanxz
阅读(418)
推荐(0) 编辑
Guava 3-缓存
摘要:缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。 缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当
阅读全文
posted @
2012-11-02 09:30
duanxz
阅读(347)
推荐(0) 编辑
Guava 4-函数式编程
摘要:注意事项 截至JDK7,Java中也只能通过笨拙冗长的匿名类来达到近似函数式编程的效果。预计JDK8中会有所改变,但Guava现在就想给JDK5以上用户提供这类支持。 过度使用Guava函数式编程会导致冗长、混乱、可读性差而且低效的代码。这是迄今为止最容易(也是最经常)被滥用的部分,如果你想通过函数
阅读全文
posted @
2012-11-01 08:54
duanxz
阅读(744)
推荐(0) 编辑
Guava 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具
摘要:任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法。Guava沿着这些路线提供了更多的工具方法:适用于所有集合的静态方法。这是Guava最流行和成熟的部分之一。 我们用相对直观的方式把工具类与特定集合接口的对应关系归纳如下: 在找类似转化、过滤的方
阅读全文
posted @
2012-10-31 11:03
duanxz
阅读(501)
推荐(0) 编辑
Guava 1.5-Throwables:简化异常和错误的传播与检查
摘要:异常传播 有时候,你会想把捕获到的异常再次抛出。这种情况通常发生在Error或RuntimeException被捕获的时候,你没想捕获它们,但是声明捕获Throwable和Exception的时候,也包括了了Error或RuntimeException。Guava提供了若干方法,来判断异常类型并且重
阅读全文
posted @
2012-10-30 17:14
duanxz
阅读(812)
推荐(0) 编辑
Guava 2.4-集合扩展工具类
摘要:简介 有时候你需要实现自己的集合扩展。也许你想要在元素被添加到列表时增加特定的行为,或者你想实现一个Iterable,其底层实际上是遍历数据库查询的结果集。Guava为你,也为我们自己提供了若干工具方法,以便让类似的工作变得更简单。(毕竟,我们自己也要用这些工具扩展集合框架。) Forwarding
阅读全文
posted @
2012-10-29 17:29
duanxz
阅读(716)
推荐(0) 编辑
1.1-使用和避免null
摘要:Doug Lea 说,“Null 真糟糕。” 当Sir C. A. R. Hoare 使用了null引用后说,”使用它导致了十亿美金的错误。” 轻率地使用null可能会导致很多令人惊愕的问题。通过学习Google底层代码库,我们发现95%的集合类不接受null值作为元素。我们认为, 相比默默地接受n
阅读全文
posted @
2012-10-29 15:23
duanxz
阅读(448)
推荐(0) 编辑
1.2-前置条件
摘要:前置条件:让方法调用的前置条件判断更简单。 Guava在Preconditions类中提供了若干前置条件判断的实用方法,我们强烈建议在Eclipse中静态导入这些方法。每个方法都有三个变种: 没有额外参数:抛出的异常中没有错误消息; 有一个Object对象作为额外参数:抛出的异常使用Object.t
阅读全文
posted @
2012-10-29 10:37
duanxz
阅读(588)
推荐(0) 编辑
1.3-常见Object方法
摘要:equals 当一个对象中的字段可以为null时,实现Object.equals方法会很痛苦,因为不得不分别对它们进行null检查。使用Objects.equal帮助你执行null敏感的equals判断,从而避免抛出NullPointerException。例如: 注意:JDK7引入的Objects
阅读全文
posted @
2012-10-29 10:07
duanxz
阅读(556)
推荐(0) 编辑
Guava 6-字符串处理:分割,连接,填充
摘要:连接器[Joiner] 用分隔符把字符串序列连接起来也可能会遇上不必要的麻烦。如果字符串序列中含有null,那连接操作会更难。Fluent风格的Joiner让连接字符串更简单。 上述代码返回”Harry; Ron; Hermione”。另外,useForNull(String)方法可以给定某个字符串
阅读全文
posted @
2012-10-25 11:31
duanxz
阅读(879)
推荐(0) 编辑
Guava 7-原生类型
摘要:概述 Java的原生类型就是指基本类型:byte、short、int、long、float、double、char和boolean。 在从Guava查找原生类型方法之前,可以先查查Arrays类,或者对应的基础类型包装类,如Integer。 原生类型不能当作对象或泛型的类型参数使用,这意味着许多通用
阅读全文
posted @
2012-10-24 19:08
duanxz
阅读(555)
推荐(0) 编辑