自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

转载 Guava学习笔记:Range

在Guava中新增了一个新的类型Range,从名字就可以了解到,这个是和区间有关的数据结构。从Google官方文档可以得到定义:Range定义了连续跨度的范围边界,这个连续跨度是一个可以比较的类型(Comparable type)。比如1到100之间的整型数据。  在数学里面的范围是有边界和无边界之分的;同样,在Guava中也有这个说法。如果这个范围是有边界的,那么这个范围又可以分为包括开

2014-09-23 10:47:33 440

转载 Guava学习笔记:EventBus

EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。  Observer模式是比较常用的设计模式之一,虽然有时候在具体代码里,它不一定叫这个名字,比如改头换面叫个Listener,但模式就是这个模式。手工实现一个Observer也

2014-09-23 10:46:56 399

转载 Guava学习笔记:Guava新增集合类型-Bimap

BiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构。  通常情况下,我们在使用Java的Map时,往往是通过key来查找value的,但是如果出现下面一种场景的情况,我们就需要额外编写一些代码了。首先来看下面一种表示标识序号和文件名的map结构。 @Test public void logMapTest(){ Map lo

2014-09-23 10:44:48 479

转载 Guava学习笔记:Guava cache

缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。  缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当我们发现我们的系统这个数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资

2014-09-23 10:44:18 520

转载 Guava学习笔记:Guava新集合-Table等

Table  当我们需要多个索引的数据结构的时候,通常情况下,我们只能用这种丑陋的Map>来实现。为此Guava提供了一个新的集合类型-Table集合类型,来支持这种数据结构的使用场景。Table支持“row”和“column”,而且提供多种视图。 @Test public void TableTest(){ Table aTable = HashBas

2014-09-23 10:43:40 593

转载 Guava学习笔记:Guava新增集合类型-Multimap

在日常的开发工作中,我们有的时候需要构造像Map>或者Map>这样比较复杂的集合类型的数据结构,以便做相应的业务逻辑处理。例如:import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.junit.Test;public

2014-09-23 10:43:10 450

转载 Guava学习笔记:Guava新增集合类型-Multiset

Guava引进了JDK里没有的,但是非常有用的一些新的集合类型。所有这些新集合类型都能和JDK里的集合平滑集成。Guava集合非常精准地实现了JDK定义的接口。Guava中定义的新集合有:  Multiset  SortedMultiset  Multimap  ListMultimap  SetMultimap  BiMap  ClassToInstanceMap

2014-09-23 10:42:14 435

转载 Guava学习笔记:Immutable(不可变)集合

不可变集合,顾名思义就是说集合是不可被修改的。集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变。  为什么要用immutable对象?immutable对象有以下的优点:    1.对不可靠的客户代码库来说,它使用安全,可以在未受信任的类库中安全的使用这些对象    2.线程安全的:immutable对象在多线程下安全,没有竞态条件    3.不需要支持可变性,

2014-09-23 10:41:37 480

转载 Guava学习笔记:简化异常处理的Throwables类

有时候, 当我们我们捕获异常, 并且像把这个异常传递到下一个try/catch块中。Guava提供了一个异常处理工具类, 可以简单地捕获和重新抛出多个异常。例如:import java.io.IOException;import org.junit.Test;import com.google.common.base.Throwables;public class Throwa

2014-09-23 10:40:37 559

转载 Guava学习笔记:复写的Object常用方法

在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法。每次写这几个方法都要做很多重复性的判断, 很多类库提供了覆写这几个方法的工具类, Guava也提供了类似的方式。下面我们来看看Guava中这几个方法简单使用。  equals方法:  equals是一个经常需要覆写的方法, 可以查看Object的

2014-09-23 10:39:55 471

转载 Guava学习笔记:Optional优雅的使用null

在我们学习和使用Guava的Optional之前,我们需要来了解一下Java中null。因为,只有我们深入的了解了null的相关知识,我们才能更加深入体会领悟到Guava的Optional设计和使用上的优雅和简单。   null代表不确定的对象:  Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量

2014-09-23 10:38:21 387

转载 Guava学习笔记:Google Guava 类库简介

Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦。下面我

2014-09-23 10:37:48 481

转载 Guava学习笔记:Preconditions优雅的检验参数

在日常开发中,我们经常会对方法的输入参数做一些数据格式上的验证,以便保证方法能够按照正常流程执行下去。对于可预知的一些数据上的错误,我们一定要做事前检测和判断,来避免程序流程出错,而不是完全通过错误处理来保证流程正确执行,毕竟错误处理是比较消耗资源的方式。在平常情况下我们对参数的判断都需要自己来逐个写方法判断,代码量不少并且复用性不高,如下所示:import org.junit.Tes

2014-09-23 10:37:21 531

转载 Guava学习笔记目录

Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦。下面是

2014-09-23 10:35:52 394

转载 深入理解Java:SimpleDateFormat安全的时间格式化

想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。下面我们通过一

2014-09-23 10:31:53 382

转载 SQL重复记录查询

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1) 例二: select * from testtable whe

2014-09-23 10:16:19 416

转载 JPA 2 静态Metamodel与Hibernate Metamodel Generator

其实本文并不是要讲解Hibernate Metamodel Generator的使用方法,因为大家可以从其参考文献(http://docs.jboss.org/hibernate/jpamodelgen/1.0/reference/en-US/html/)中获取这些知识。我只是想说说最近我体会到的Metamodel带给开发人员的好处,顺带提一提Hibernate Metamodel Gener

2014-09-18 09:36:53 1657

原创 link安装activiti designer

1.下载activiti-designer插件,下载地址:http://activiti.org/designer/archived/选择5.8版本下载。2.解压下载完成压缩包,如图:删除artifacts.jar,content.jar和site.xml,然后在文件夹下建立一个和文件夹相同名字的文件(我的文件夹名称为activiti)activiti.link如图:3.将

2014-09-12 10:44:29 1076

转载 eclipse运行maven的jetty插件java.lang.OutOfMemoryError: PermGen space内存溢出

系统运行在MAVEN中的jetty插件下,当在ECLIPSE运 clean jetty:run时系统提示OutOfMemoryError: PermGen space。解决办法:设置run as --->run configuragtions--->jre标签下的属性VM arguments:-server -Xms512m -Xmx1024m -XX:Perm

2014-09-09 15:15:30 2662

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除