Google的Guava之IO升华】的更多相关文章

版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/luo201227/article/details/36413279 程序员在开发过程中,使用文件的几率是相当大的,有时候,我们甚至须要几十秒内读取一下IO流中的数据.可是原生态的文件流的读写,一旦操作不当,就有可能出现内存溢出和打开文件数过多的异常错误,这一点在Linux环境下表现得尤其突出,所以使用好原生态的读写文件流真的非常重要!好啦,这里着重来讲一下Google的Guava对IO的操作升级.…
至于Guava这是不是在这里说.一个已被提上一个非常特殊的! 这主要是为了分享Guava对于一些升华处理组.井,不多说了,直接在代码: package com.joyce.guava.bean; /** * 学生实体类 * * @author Joyce.Luo * @date 2014-6-19 下午02:37:19 */ public class Student { /** * 学号 */ private Integer stuId; /** * 姓名 */ private String s…
原文出处: oschina (API:http://ifeve.com/category/framework/guava-2/ JAR DOC Source 链接:http://pan.baidu.com/s/1dDdEFZj 密码:cqfe ) 这个夏天的早些时候,我已经极力向我的所有同事推荐了 Google Collections . Kevin Bourrillion说他的一个同事告诉他"没有使用Google Collections前编程就像把一只手绑在背后". 我灰常同意Kev…
说明:信息虽然有点旧,至少可以先了解个大概. Guava是一个Google的基于Java的类库集合的扩展项目,包括collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O等等,这些高质量的API可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦.下面我们就开启优雅Java编程学习之旅! 项目相关信息: 官网:https://gi…
Guava 中文是石榴的意思,该项目是 Google 的一个开源项目,包含许多 Google 核心的 Java 常用库. 目前主要包含: com.google.common.annotations com.google.common.base com.google.common.collect com.google.common.io com.google.common.net com.google.common.primitives com.google.common.util.concurr…
一直用的是apache的stringutil工具类,其实google的工具类项目 guava中居然也有字符串的分隔类splitter的,在 http://code.google.com/p/guava-libraries/中可以下载,其中在老外的 http://www.javacodegeeks.com/2012/12/guava-splitter-vs-stringutils.html 这篇文章中进行了stringutil的对比: 首先看两者的用法: // Apache StringUtils…
1.guava事件总线(AsyncEventBus)使用 1.1引入依赖 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>23.0</version> </dependency> 1.2在spring中通过配置类(支持spring4.x以上及springboot)使AsyncEven…
1.pom文件中配置 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <group…
文章转载自:http://my.oschina.net/leejun2005/blog/172328 目录:[ - ] 1-使用 GOOGLE COLLECTIONS,GUAVA,STATIC IMPORTS 编写漂亮代码 1.Google Collections一览 2.操作lists和maps 3.静态导入和Eclipse模板 4.Guava走马观花 2-深入探索 GOOGLE GUAVA 库 1.The Guava CharMatcher 2.Joiner and Splitter 3.W…
一.Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦.下面我们就开启优雅Java编程学习之旅! 项目相关信息: 官方首页:http://code.googl…
google的guava库是个很不错的工具库,这次来学习其spliiter的用法,它是一个专门用来 分隔字符串的工具类,其中有四种用法,分别来小结 1 基本用法: String str = "a,,b, c,,,d"; Iterable<String> iterable = Splitter.on(',').split(str); System.out.println("--start--"); for (String result : iterable…
./configure \ --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var…
Google的Guava类库提供了EventBus,用于提供一套组件内publish/subscribe的解决方案.事件总线EventBus,用于管理事件的注册和分发.在系统中,Subscribers会向EventBus注册自己感兴趣的事件,而publishers会将自己产生的事件发布给EventBus.在系统中,EventBus事件分发默认设置为串行的(可设置),我们在Subscribers中的事件处理速度要快,不要阻塞当前的事件纷发进程. 创建EventBus实例 EventBus提供两个构…
开源工具包: Guava : Google Collection Apache:Commons Collecton 1.1 Google Collections Guava:google的工程师利用传说中的“20%时间”开发的集合库,它是对jdk提供的扩展,提供了很多使用的类来简化代码 jar包:https://code.google.com/p/guava-libraries/ 源码下载: 下载git工具:(易于本地增加分支和分布式的特性) msysgit:http://code.google…
原文:http://www.   zuidaima.com/blog/3182745969511424.htm 以前只是听过这个工具包,但是真正用的话还是在D75需求中.我要实现把前台传入的list集合用分号分割拼接一个字符串存入数据库, 开始的时候我用代码逻辑如下: StringBuffer interfaceList=new StringBuffer(); //判断前台绑定中的集合是否为空 if(interfaces!=null) { for(String str:interfaces){…
在java日常开发中,经常需要使用各种数据结构,在涉及到数据结构之间如何优雅的转换时,我们可以借助google的guava提供的相关功能来优雅的实现.以下记录一些开发中经常需要使用数据结构的变形,以便使用时方便查阅. 一般我们的数据结构中存储的为对象,以下举例先构造一个类,用来存放中不同的数据结构中. class Person { public String name; public int age; Person(String name, int age) { this.name = name…
原文出处: oschina 在本系列博客的前三章,我们大概介绍了Google的Guava类库和Collections类库,作为一名Java开发人员,相信你会从使用这些类库,进而来减少在你项目中使用样板文件的数量而获益.在本系列博客的最后一篇中,我将带大家来了解一个会让你完全爱上并沉浸于其中的的集合工具类-Multimap.我们将带大家了解下如何使用Google Collections的Preconditions来做校验,但是在此之前,先让我们来了解下如何对Set和Map进行交集.并集和差集的运算…
guava字符串工具 在java开发过程中对字符串的处理是非常频繁的,google的guava工具对字符串的一些处理进行优化,使我们开发过程中让自己的代码看去更加美观,清爽. 一.Joiner 根据给定的分隔符把字符串连接到一起.MapJoiner 执行相同的操作,但是针对 Map 的 key 和 value. 分析源码可知:该类构造方法被private修身,无法直接通过new实现,通过调用on传如分隔符来得到实例. 案例 public class JoinerTest { public sta…
1. SSH连接 Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境.SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接.虽然任何网络服务都可以通过SSH实现安全传输,SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令.使用频率最高的场合类Unix系统,但是Windows操作系统也能有限度地使用SSH. SSH本身是一个非常安全的认证连接方式.不过由于人过等方面的原因,难免会…
基础功能 google guava中定义的String操作 在google guava中为字符串操作提供了很大的便利,有老牌的判断字符串是否为空字符串或者为null,用指定字符填充字符串,以及拆分合并字符串,字符串匹配的判断等等. 1. 使用com.google.common.base.Strings类的isNullOrEmpty(input)方法判断字符串是否为空 1 //Strings.isNullOrEmpty(input) demo 2 String input = ""; 3…
项目开发中,很多配置数据需要缓存,一般来说,开发人员都会手动写HashMap,HashSet或者ConcurrentHashMap,ConcurrentHashSet缓存数据,但是这样的缓存往往存在内存泄漏,刷新机制不健全等缺点.实际上有不少第三方组件实现了功能完善的本地缓存,建议大家直接使用成熟的本地缓存组件,这里主要介绍一下google的guava. 整体来看,guava首次查询数据时使用用户实现的load方法加载数据,之后再次查询该数据就可以直接从内存中获取,不必走load方法了.当然,g…
1.新建maven项目k8stest,pom.xml如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.…
null会带来很多问题,从开始有null开始有无数程序栽在null的手里,null的含义是不清晰的,检查null在大多数情况下是不得不做的,而我们又在很多时候忘记了对null做检查,在我们的产品真正投入使用的时候,空指针异常出现了,这是一种讨厌的情况. 鉴于此google的guava库中提供了Optional接口来使null快速失败,即在可能为null的对象上做了一层封装,在使用Optional静态方法of时,如果传入的参数为null就抛出NullPointerException异常. 使用Op…
一.使用场景 在日常开发中,我们经常会遇到需要调用外部服务和接口的场景.外部服务对于调用者来说一般都是不可靠的,尤其是在网络环境比较差的情况下,网络抖动很容易导致请求超时等异常情况,这时候就需要使用失败重试策略重新调用 API 接口来获取.重试策略在服务治理方面也有很广泛的使用,通过定时检测,来查看服务是否存活( Active). Guava Retrying 是一个灵活方便的重试组件,包含了多种的重试策略,而且扩展起来非常容易. 用作者的话来说: This is a small extensi…
缓存的作用与应用场景 缓存,在项目中的应用非常之广泛.诸如这样的场景,某些对象计算或者获取的代码比较昂贵,并且在程序里你不止一次要用到这些对象,那么,你就应该使用缓存. 缓存跟java的CoucurrentMap很类似,但青出于蓝胜于蓝.CoucurrentMap的特点是,当你往它里面放元素的时候,你需要自己手动去把它移除.而缓存的最大特点是,你无须手动去移除缓存里的元素,而是通过某些移除策略,如果超时或者内存空间紧张等等. 本文主要使用Google的guava工具库来构建我们的缓存系统. 首先…
1. 场景描述 因项目要使用本地缓存,具体为啥不用redis等,就不讨论,记录下过程,希望能帮到需要的朋友. 2.解决方案 2.1 使用google的guava作为本地缓存 初步的想法是使用google的guava,因为本身项目中就有guava的denpency. 2.1.1 pom文件 需要3个dependency,如下: <!--软件老王 1--> <dependency> <groupId>org.springframework.boot</groupId&…
Guava Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库 例如:集合 [collections] .缓存 [caching] .原生类型支持 [primitives support] .并发库 [concurrency libraries] .通用注解 [common annotations] .字符串处理 [string processing] .I/O 等等. guava类似Apache Commons工具集 Guava的好处 标准化 - Guava库是由谷歌托管…
某些热点数据在短时间内可能会被成千上万次访问,所以除了放在redis之外,还可以放在本地内存,也就是JVM的内存中. 我们可以使用google的guava cache组件实现本地缓存,之所以选择guava是因为它可以控制key和value的大小和超时时间,可以配置LRU策略且guava是线程安全的. 首先引入guava cache <dependency> <groupId>com.google.guava</groupId> <artifactId>gua…
本地环境 jdk1.8 连接 Google Guava官方教程(中文版) journaldev 说明 java的final关键字大家都了解,但是final修饰的如果是引用类型,那么不可修改的其实只是重新赋值,是可以修改引用对象中的属性值的. 那如何来构建一个不可修改的list.map.set等这些对象呢,可以通过jdk自带的Collections,也可以通过google的guava来进行构建. 代码样例 import com.google.common.collect.ImmutableList…
字符串处理工具Guava使用总结 在java开发过程中对字符串的处理是非常频繁的,google的guava工具对字符串的一些处理进行优化,使我们开发过程中让自己的代码看去更加美观,清爽. 1:maven依赖: <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version> <…