我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3538666.html ,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. 例子 public static final ImmutableSet<String> COLOR_NAMES =ImmutableSet.of( "red", "orange", "yellow", "green&quo…
用户指南 Guava包含Google在Java项目中用到的一些核心库:collections, caching, primitives support, concurrency 库, common annotations, string 处理, I/O等.Google工程师们在开发中每天都使用这些工具. 但是,要学习如何用好这些库,通读Javadoc并不是最有效的方法.在这里,我们尝试用一种可读性强.轻松愉快的方法来介绍Guava中最常用和最强大的特性. 这个wiki还在编写过程中,一些部分可能…
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3537367.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. Object 公共方法 equals 当你的对象里有的域允许 null 值时,实现 Object.equals 方法会很麻烦,因为你必须单独检查 null .使用 Objects.equal 方法可以完成考虑null(null-sensitive)的 equals 检查,而不用担心会出现 Nul…
  单元测试代码:  ( 在IDEA中先输入'@Test '然后根据提示进行自动修订即可!!运行时直接运行即可! 若有多个单元测试块的时候,直接把鼠标放在哪里就自动在哪里运行那个单元块) import java.util.*; /**操纵Collection和Map的 工具类 : Collections * 面试题: */ public class Test_Collections_工具类 { public static void main(String[] args) { } @org.jun…
本文地址:http://www.cnblogs.com/hamhog/p/3536647.html "null很恶心." -Doug Lea "这是一个令我追悔莫及的错误." - Sir C. A. R. Hoare, 在评价他对null的发明时说. 使用和避免使用null 粗心地使用null能导致各种各样的bug.通过研究Google code base,我们发现大约95%的collection中不该含有null值.对于开发者来说,collection对null值…
今天发现MS在Nuget上发布了一个Immutable Collection的程序集,提供了对不可变对象的集合的支持. 简单的看了一下,貌似支持的还比较全: ImmutableArray<T> ImmutableStack<T> ImmutableQueue<T> ImmutableList<T> ImmutableHashSet<T> ImmutableSortedSet<T> ImmutableDictionary<K, V…
本文地址:http://www.cnblogs.com/hamhog/p/3537233.html 示例 assertTrue(byLengthOrdering.reverse().isOrdered(list)); 概述 Ordering 是Guava的"流畅版" Comparator ,它用来构建高级comparator,并把comparator应用于各种集合(collection). 本质上, Ordering 实例不过是一个特殊的 Comparator 实例. Ordering…
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3537508.html ,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. Guava的 Throwables 工具常常可以让exception处理更方便. Propagation 有时候,你会想把捕获的exception抛到上一个try/catch块.对于 RuntimeException 和 Error 尤为如此,它们不需要 try/catch 块,但可能被其他的…
本文地址:http://www.cnblogs.com/hamhog/p/3536964.html 前置条件检查 Guava提供了一些检查前置条件的utilities.我们强烈建议静态import这些utilities.(如何在Eclipse中轻松做到.) 这些方法的参数列表有3种变形: 不附额外的参数.抛出exception时没有错误信息. 额外附一个 Object 类型的参数.抛出exception时,错误信息为 object.toString . 额外附一个 String 类型的参数,以及…
不可变集合,顾名思义就是说集合是不可被修改的.集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变. 为什么要用immutable对象?immutable对象有以下的优点: 对不可靠的客户代码库来说,它使用安全,可以在未受信任的类库中安全的使用这些对象 线程安全的:immutable对象在多线程下安全,没有竞态条件 不需要支持可变性, 可以尽量节省空间和时间的开销. 所有的不可变集合实现都比可变集合更加有效的利用内存 (analysis) 可以被使用为一个常量,并且期望在未来也是保持不…
不可变集合,顾名思义就是说集合是不可被修改的.集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变. 为什么要用immutable对象?immutable对象有以下的优点: 1.对不可靠的客户代码库来说,它使用安全,可以在未受信任的类库中安全的使用这些对象 2.线程安全的:immutable对象在多线程下安全,没有竞态条件 3.不需要支持可变性, 可以尽量节省空间和时间的开销. 所有的不可变集合实现都比可变集合更加有效的利用内存 (analysis) 4.可以被使用为一个常量,并且期望…
Google Guava官方教程(中文版) 原文链接  译文链接 译者: 沈义扬,罗立树,何一昕,武祖  校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 [primitives support] .并发库 [concurrency libraries] .通用注解 [common annotations] .字符串处理 [string processing] .I/O…
用户指南 User Guide Guava项目包括了一些Google的核心库,是我们在基于Java的项目中所依赖的,这些库包括:集合,缓存,对基本类型的支持,并发库,通用的注解,字符串处理,I/O,等等.这些工具的每一个真的都在被Google每天使用着,而且是在生产系统中. 但是只是在Javadoc中寻觅不是学会怎么使用一个库的最有效的方法.在此,我们试图对Guava的一些最流行和强大的特性做出良好的阐述. 这个wiki还没有完工,它的有些部分仍然在构建中. 基础工具:让使用Java这个语言更令…
Immutable(不可变)集合 一.概述 guava是google的一个库,弥补了java语言的很多方面的不足,很多在java8中已有实现,暂时不展开.Collections是jdk提供的一个工具类. Guava中不可变对象和Collections工具类的unmodifiableSet/List/Map/etc的区别: 当Collections创建的不可变集合的wrapper类改变的时候,不可变集合也会改变,而Guava的Immutable集合保证确实是不可变的. 1.JDK中实现immuta…
所谓不可变集合,顾名思义就是定义了之后不可修改的集合. 一.为什么要使用不可变集合 不可变对象有很多优点,包括: 当对象被不可信的库调用时,不可变形式是安全的: 不可变对象被多个线程调用时,不存在竞态条件问题 不可变集合不需要考虑变化,因此可以节省时间和空间.所有不可变的集合都比它们的可变形式有更好的内存利用率(分析和测试细节): 不可变对象因为有固定不变,可以作为常量来安全使用. 创建对象的不可变拷贝是一项很好的防御性编程技巧.Guava为所有JDK标准集合类型和Guava新集合类型都提供了简…
  原文链接  译文链接 译者: 沈义扬,罗立树,何一昕,武祖  校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 [primitives support] .并发库 [concurrency libraries] .通用注解 [common annotations] .字符串处理 [string processing] .I/O 等等. 所有这些工具每天都在被Goog…
Google Guava官方教程(中文版) http://ifeve.com/google-guava/…
全网址           http://ifeve.com/google-guava/ 竹子博客:  http://www.cnblogs.com/peida/archive/2013/06/08/3120820.html 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 [primitives support] .并发库 [concurrency libraries] .通用注解…
Google Guava官方教程(中文版) http://ifeve.com/google-guava/ 瓜娃啊瓜娃…
原文链接 译文链接 译者: 沈义扬,罗立树,何一昕,*武祖 * 校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 [primitives support] .并发库 [concurrency libraries] .通用注解 [common annotations] .字符串处理 [string processing] .I/O 等等. 所有这些工具每天都在被Googl…
Immutable(不可变)集合   一,概述 guava是google的一个库,弥补了java语音的很多方面的不足,很多在java8中已有实现,暂时不展开,Collections是jdk提供的一个工具类 Guava中不可变对象和Collections工具类的unmodifiableSet/List/Map/etc的区别: 当Collections创建的不可变集合的wrapper类改变的时候,不可变集合也会改变,而Guava的Immutable集合保证确实是不可变的. 1.jdk中实现immut…
Immutable是为了创建不可变集合使用,不可变集合在很多情况下能提高系统性能.一般使用 .of()或者.builder()<>().put().build()初始化创建不可变集合…
Spring官方文档翻译(1~6章) 转载至 http://blog.csdn.net/tangtong1/article/details/51326887 Spring官方文档.参考中文文档 一.Spring框架概述 Spring框架是一个轻量级的解决方案,可以一站式地构建企业级应用.Spring是模块化的,所以可以只使用其中需要的部分.可以在任何web框架上使用控制反转(IoC),也可以只使用Hibernate集成代码或JDBC抽象层.它支持声明式事务管理.通过RMI或web服务实现远程访问…
kong插件官方文档翻译 目录 介绍 文件结构 编写自定义逻辑 存储配置 访问数据存储 自定义实体 缓存自定义实体 扩展Admin API 编写测试 (卸载)安装你的插件 插件开发 - 介绍 什么是插件,他们如何与kong集成? 在进一步之前,有必要简要解释一下如何构建,特别是它如何与Nginx集成,以及Lua与它有关. lua-nginx-module模块可以在Nginx中启用Lua脚本功能. Kong并没有使用这个模块编译Nginx,而是与OpenResty一起发行,OpenResty已经包…
一.案例场景 遇到过这样的场景,在定义一个static修饰的Map时,使用了大量的put()方法赋值,就类似这样-- public static final Map<String,String> dayMap= new HashMap<>(); static { dayMap.put("Monday","今天上英语课"); dayMap.put("Tuesday","今天上语文课"); dayMap.p…
Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Logging raw data(记录原始数据) Logging the raw stream of data flowing through the ingest pipeline is not desired behaviour in many production environments because this may result in leaking sensit…
原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.Guava沿着这些路线提供了更多的工具方法:适用于所有集合的静态方法.这是Guava最流行和成熟的部分之一. 我们用相对直观的方式把工具类与特定集合接口的对应关系归纳如下: 集合接口 属于JDK还是Guava 对应的Guava工具类 Collection JDK Collections2:不要和jav…
范例 01 public static final ImmutableSet<String> COLOR_NAMES = ImmutableSet.of( 02 "red", 03 "orange", 04 "yellow", 05 "green", 06 "blue", 07 "purple"); 08 09 class Foo { 10 Set<Bar> ba…
新博客:完整版 - AVFoundation Programming Guide 分章节版:- 第1章:About AVFoundation - AVFoundation概述- 第2章:Using Assets - 使用Assets- 第3章:Playback - 播放- 第4章:Editing - 编辑- 第5章:Still and Video Media Capture - 静态视频媒体捕获- 第6章:Export - 输出- 第7章:Time and Media Representatio…
转载的,有问题请联系我 原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.Guava沿着这些路线提供了更多的工具方法:适用于所有集合的静态方法.这是Guava最流行和成熟的部分之一. 我们用相对直观的方式把工具类与特定集合接口的对应关系归纳如下: 集合接口 属于JDK还是Guava 对应的Guava工具类 Collection JDK Collect…