Guava的一些总结
guava是java API蛋糕上的冰激凌(精华).
源码包的简单说明:
com.google.common.annotations:普通注解类型。
com.google.common.base:基本工具类库和接口。
com.google.common.cache:缓存工具包,非常简单易用且功能强大的JVM内缓存。
com.google.common.collect:带泛型的集合接口扩展和实现,以及工具类,这里你会发现很多好玩的集合。
com.google.common.eventbus:发布订阅风格的事件总线。
com.google.common.hash: 哈希工具包。
com.google.common.io:I/O工具包。
com.google.common.math:原始算术类型和超大数的运算工具包。
com.google.common.net:网络工具包。
com.google.common.primitives:八种原始类型和无符号类型的静态工具包。
com.google.common.reflect:反射工具包。
com.google.common.util.concurrent:多线程工具包。
现在针对每个包的类现在进行测试。
com.google.common.base:基本工具类库和接口
Ascii:针对ASCII码的处理,比较实用的方法有:
toLowerCase(String param):将传入的param的字符处理为小写。
toUpperCase(String param):将传入的param的字符处理为大写。
truncate(CharSequence seq, int maxLength, String indicator):将seq的字符串截断衔接上indicatori字符串,使总体字符串长度等于maxLength。如果maxLength小于indicator的长度,报错IllegalArgumentException.如果maxLength大于seq的长度,则结果即为seq。
public class AsciiOwnTest {
public static void main(String[] args) {
String test=Ascii.toLowerCase("ZHONG GUO!");
System.out.println(test);
test=Ascii.toUpperCase("feng ge");
System.out.println(test);
//test=Ascii.truncate("laoshiha", 3, "....");这个会报错
//System.out.println(test);
test=Ascii.truncate("laoshiha", 4, "....");
System.out.println(test);
test=Ascii.truncate("laoshiha", 5, "....");
System.out.println(test);
test=Ascii.truncate("laoshiha", 6, "....");
System.out.println(test);
test=Ascii.truncate("laoshiha", 7, "....");
System.out.println(test);
test=Ascii.truncate("laoshiha", 8, "....");
System.out.println(test);
test=Ascii.truncate("laoshiha", 9, "....");
System.out.println(test);
}
}
结果如下:
zhong guo!
FENG GE
....
l....
la....
lao....
laoshiha
laoshiha
Joiner:用于将容器中的元素进行拼接,这个还是比较实用。
on(String param):按照param来做分隔符。
join(Iterator<?> part):用来拼接迭代器中的元素,返回一个String类型
append(A extend appendable,Iterator<?> parts): 在A对象后边加拼接迭代器中的元素。
public class Test {
public static void main(String[] args) {
Joiner joiner = Joiner.on(";");
List<String> lists = new ArrayList<String>();
lists.add("hhaha");
lists.add("中国龙");
System.out.println(joiner.join(lists.iterator()));
StringBuilder sb = new StringBuilder();
sb.append("什么意思?");
sb =joiner.appendTo(sb, lists);
System.out.println(sb.toString());
}
hhaha;中国龙
什么意思?hhaha;中国龙
Objects:实体类
equal(,):校验两个对象是否相等.
public static void main(String[] args) {
System.out.println(Objects.equal(1,1));
}
true
Splitter:按照某个字符分割一组数据。
on():分隔符.
split(CharSequence param):分割的数据.
public class Test {
public static void main(String[] args) {
Iterator<String> it = Splitter.on(",").split("wo,xiang,ni").iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
结果:
wo
xiang
ni
ComparisonChain:执行比较操作直至发现非零的结果,在那之后的比较输入将被忽略。
class TestCompare implements Comparable<TestCompare>{
private String hehe;
private int heihei;
public String getHehe() {
return hehe;
}
public void setHehe(String hehe) {
this.hehe = hehe;
}
@Override
public int compareTo(TestCompare t) {
return ComparisonChain.start()
.compare(this.hehe, t.hehe)
.compare(this.heihei, t.heihei)
.result();
}
}
Guava的一些总结的更多相关文章
- Spring cache简单使用guava cache
Spring cache简单使用 前言 spring有一套和各种缓存的集成方式.类似于sl4j,你可以选择log框架实现,也一样可以实现缓存实现,比如ehcache,guava cache. [TOC ...
- Guava库介绍之实用工具类
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文是我写的Google开源的Java编程库Guava系列之一,主要介 ...
- Google Java编程库Guava介绍
本系列想介绍下Java下开源的优秀编程库--Guava[ˈgwɑːvə].它包含了Google在Java项目中使用一些核心库,包含集合(Collections),缓存(Caching),并发编程库(C ...
- [Java 缓存] Java Cache之 Guava Cache的简单应用.
前言 今天第一次使用MarkDown的形式发博客. 准备记录一下自己对Guava Cache的认识及项目中的实际使用经验. 一: 什么是Guava Guava工程包含了若干被Google的 Java项 ...
- [转载]Google Guava官方教程(中文版)
原文链接 译文链接 译者: 沈义扬,罗立树,何一昕,武祖 校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] ...
- java开发人员,最应该学习和熟练使用的工具类。google guava.(谷歌 瓜娃)
学习参考文章: http://blog.csdn.net/wisgood/article/details/13297535 http://ifeve.com/google-guava/ http:// ...
- Guava学习笔记(一)概览
Guava是谷歌开源的一套Java开发类库,以简洁的编程风格著称,提供了很多实用的工具类, 在之前的工作中应用过Collections API和Guava提供的Cache,不过对Guava没有一个系统 ...
- Guava monitor
Guava的com.google.util.concurrent类库提供了相对于jdk java.util.concurrent包更加方便实用的并发类,Monitor类就是其中一个.Monitor类在 ...
- 使用Guava EventBus构建publish/subscribe系统
Google的Guava类库提供了EventBus,用于提供一套组件内publish/subscribe的解决方案.事件总线EventBus,用于管理事件的注册和分发.在系统中,Subscribers ...
- Guava Supplier实例
今天想讲一下Guava Suppliers的几点用法.Guava Suppliers的主要功能是创建包裹的单例对象,通过get方法可以获取对象的值.每次获取的对象都为同一个对象,但你和单例模式有所区别 ...
随机推荐
- 纯IPv6环境App适配的坑
来源:伯乐在线专栏作者 - MrPeak 链接:http://ios.jobbole.com/86580/ 苹果从2016年6月1号开始,强制所有app必须支持纯IPv6的网络环境.这项举措将对IPv ...
- HDFS的Java客户端操作代码(HDFS删除文件或目录)
1.HDFS删除文件或目录 package Hdfs; import java.io.IOException; import java.net.URI; import org.apache.hadoo ...
- php之常量小见
php设置常量有二种方法,一为define(),二为使用关键字const. define()函数带有三个形参,一为常量名,通常以大写字母命名,二为值,三为是否对大小写敏感,其值为可选,默认为false ...
- Universal-Image-Loader 使用步骤
开源框架利与弊 开源框架给开发者提供了便利,避免了重复造轮子,但是却隐藏了一些开发上的细节,如果不关注其内部实现,那么将不利于开发人员掌握核心技术,当然也谈不上更好的使用它,计划分析项目的集成使用和低 ...
- Android 网络视频播放器
项目概要: 1.登录界面 2.播放列表 3.播放界面
- Android - 折线图
使用Android的canvas,画折线图:代码为: package spt.view; import android.annotation.SuppressLint; import android. ...
- 防止sql注入式攻击 SQL注入学习——三层架构
解决方案是:1.首先在UI录入时,要控制数据的类型和长度.防止SQL注入式攻击,系统提供检测注入式攻击的函数,一旦检测出注入式攻击,该数据即不能提交:2.业务逻辑层控制,通过在方法内部将SQL关键字用 ...
- gulp + browserSync 一起提高前端开发效率吧!
前端开发的时候,每次修改代码后,要移动鼠标到浏览器选中再刷新查看效果,不知觉间我们的加班的时间又增加了0.5s, 真是罪孽!所以在使用gulp之后,就一直对能自动监听文件刷新页面的browserSyn ...
- C++资源之不完全导引 (转载)
C++资源之不完全导引(完整版)- - 这文章太强了,我一定要转载,否则对不起观众,对不起自己.(liigo) 发信人: NULLNULL (空空), 信区: VC标 题: C++资源之不完全导引( ...
- (一)跟我一起玩Linux网络服务:DNS服务——BIND(/etc/named.conf、/var/named)设置实现和解释
2015年3月24更新 添加了要加的配置域名解析器(否则会找不到域名) 一.创建该实验的的模型 配置完gate虚拟机的两张网卡后,就启动gate的转发 [root@localhost ro ...