归档: 2016/10

0

Guava优美代码-12-Function

Guava函数式编程关于函数式编程,好像越来越多的编程语言都开始逐渐支持这个特性,最明显的就是python,javascript,还有Swift等等。Java终于在1.8中支持了函数式编程,但是在JDK1.8推出来以前,Guava就为我们提供了强大的函数式编程框架–Function。 Function和FunctionsFunction<A, B>,它声明了单个方法B apply(A

0

Guava优美代码-11-Cache

Guava缓存Cache缓存(Cache)是我们在开发中为了提高系统的性能,把经常的访问业务数据在第一次访问时没有就先处理结果然后放到缓存中,第二次就不用在对相同的业务数据再重新处理一遍,这样就大大提高了系统的性能。缓存被广泛地引用在各个企业的业务系统中,Guava为我们提供了一个非常好的缓存架构,下面介绍Guava Cache的具体使用方法。 缓存分类缓存分好几种: 本地缓存。 数据库缓存。

0

VIM文件头设置

很多编辑器都支持在源代码中自动添加作者信息的功能,据我所知Eclipse就支持,虽然我们的Vim(gvim)默认没有这个功能,但是只需要几行代码自己配置一下,我们一样可以让Vim(gvim)支持自动添加作者信息! 这里面需要使用VIM LANGUAGE的语法,不过不知道也没关系,看我的配置然后对应改一下就OK了! 12345678910111213141516171819202122232425

0

Guava优美代码-10-CollectionUtils

集合工具类 Collection Utils ClassGuava的魅力在处理集合的方面可以说是展现的淋漓尽致,相比JDK的实现,使用Guava可以使我们的代码变得更加“优美”,尤其是在集合接口的声明或者是创建上面。下面我们通过一些简单的例子来领略一下Guava的魅力! 静态工厂方法在JDK 7之前,构造新的泛型集合时要讨厌地重复声明泛型: 1List<TypeThatsTooLongFor

0

聊一聊民谣

聊了好长时间的技术了,咱今天不聊技术,换一下别的主题,给大伙儿聊一聊我最喜欢的民谣! 突然发现,人真的是会变化的。十年前,2006年,我12岁,想一想那个时候抱着复读机反复听着刀郎的《冲动的惩罚》还有《2002年的第一场雪》,以及说不清道不明的《老鼠爱大米》,《香水有毒》。现在回想起来,当时学那些歌儿时候的认真劲儿还挺有意思的。 转眼小升初,2006年到2009年,我能回忆起来可能就是许嵩的《断

0

Guava优美代码-9-MultiMap

多值映射MultiMapMap大概是我们在生产过程中使用最多的容器之一了。Map是一种典型的K-V(键-值)结构。即可以通过一个Key(键)查找到对应的V(值)。正是由于此,JDK规定了Map中不能有重复的键,因为重复会导致无法查询准确的值。但是我们也要注意到这么一个需求:经常地,我们会需要一个键对应多个值,如果用JDK表示,就是这种结构Map<String, List<String&

0

Guava优美代码-8-MultiSet

多值集合MultiSet使用过JDK的同学都知道,在Java中集合Set是不允许重复的,也就是说在同一个集合中不允许出现两个相同的元素。但是如果我们需要计算一个集合中一个元素出现的次数,采用JDK的方式去完成的话会非常的麻烦,但是Guava为我们解决了这个问题—MultiSet。 实现一个Word Count程序我们需要统计一段文字中各个单词出现的次数,下面给出JDK和Guava两种实现方式。 J

0

Guava优美代码-7-ImmutCollections

不可变集合Immutable Collections为什么要使用不可变集合不可变对象有很多优点,包括: 当对象被不可信的库调用时,不可变形式是安全的; 不可变对象被多个线程调用时,不存在竞态条件问题 不可变集合不需要考虑变化,因此可以节省时间和空间。所有不可变的集合都比它们的可变形式有更好的内存利用率(比如分析和测试细节); 不可变对象因为固定不变,所以可以作为常量来安全使用。 创建对象的不可

0

Linux集群管理脚本

不知道你是否遇到下面这种经历,当你面对多台机器需要维护的时候,可能会觉得不知所措,一台机器,两台机器这都还好说,但是如果需要管理的是一个集群(超过50台)呢?一台机器一台机器去管理是不太现实的,那样的话累死了。下面分享一个简单的脚本有助于解决这种管理急群中多台服务器的情况。 前提是你首先得设置主机和各台从机之间的SSH免密码登录。如果不知道的可以去看一下我的另一篇博客设置SSH免登录。补充说明的是

0

Guava优美代码-6-Throwables

简化异常处理的ThrowablesGuava提供了一个异常处理工具类, 可以简单地捕获和重新抛出多个异常。这个工具就是Throwables。借助Throwables工具类,我们可以很轻松地完成以下一些事情: 获取异常链 获取最底层的异常 过滤异常,只抛出我们感兴趣的异常 把受检查的异常转换为运行时异常 下面直接给出上述几种用例场景的示例代码分析。 获取异常链(getCausalChain)12