202205-15 如何用Java Stream写出既高雅又装*的代码 目录一.冷静分析二.直接开装2.1初级炫2.2普通炫2.3高级炫2.4再炫一波拿到当前key与对应的数量2.5MapReduce炫git仓库直达List<String>strings=Lists.newArrayList("name=kk","sex=1","tel=1111","email=xx@qq.com","name=ww","name=yy");一.冷静分析如上代码,你现在要做一个分组的Map将上面list的值读取出来,然后分组统计类似于Map<String,List<String>>将Key相同的Val全部存到一个list里面二.直接开装不会真有... 继续阅读 >
202204-20 解析springboot整合谷歌开源缓存框架Guava Cache原理 目录GuavaCache:⾕歌开源缓存框架GuavaCache使用使用压测⼯具Jmeter5.x进行接口压力测试:压测⼯具本地快速安装Jmeter5.x新增聚合报告:线程组->添加->监听器->聚合报告(AggregateReport)GuavaCache:⾕歌开源缓存框架GuavaCache是在内存中缓存数据,相比较于数据库或redis存储,访问内存中的数据会更加高效。Guava官网介绍,下面的这几种情况可以考虑使用GuavaCache:愿意消耗一些内存空间来提... 继续阅读 >
202109-29 Java源码分析:Guava之不可变集合ImmutableMap的源码分析 目录一、案例场景二、ImmutableMap源码分析总结一、案例场景遇到过这样的场景,在定义一个static修饰的Map时,使用了大量的put()方法赋值,就类似这样——publicstaticfinalMap<String,String>dayMap=newHashMap<>();static{dayMap.put("Monday","今天上英语课");dayMap.put("Tuesday","今天上语文课");dayMap.put("Wednesday","今天上数学课");dayMap.put("Thursday","今天上音乐课");dayMap.put("Su... 继续阅读 >
202103-30 Guava Cache的使用简介 1引入说到缓存,可能大家最先想到的还是Redis。作为基于键值对的非关系型数据库,Redis具有高性能、丰富的数据结构、持久化、高可用、分布式等特性,使其在业内得到了广泛的认可和使用。但是,使用Redis必然涉及到网络连接,当网络连接不稳定或网络耗时严重时,必然会影响到我们的业务使用。如果我们想提高我们的业务性能,又减少对其他机器的依赖,那么,使用本地缓存会是一个不错的选择。使用本地缓存时,大多时候我们会采用Con... 继续阅读 >
202103-05 JAVA | Guava EventBus 使用 发布/订阅模式的步骤 前言EventBus是Guava的事件处理机制,是观察者模式(生产/消费模型)的一种实现。观察者模式在我们日常开发中使用非常广泛,例如在订单系统中,订单状态或者物流信息的变更会向用户发送APP推送、短信、通知卖家、买家等等;审批系统中,审批单的流程流转会通知发起审批用户、审批的领导等等。Observer模式也是JDK中自带就支持的,其在1.0版本就已经存在Observer,不过随着Java版本的飞速升级,其使用方式一直没有变化,... 继续阅读 >
202101-21 Spring Boot 2.x 把 Guava 干掉了选择本地缓存之王 Caffeine(推荐) 环境配置:JDK版本:1.8Caffeine版本:2.8.0SpringBoot版本:2.2.2.RELEASE一、本地缓存介绍缓存在日常开发中启动至关重要的作用,由于是存储在内存中,数据的读取速度是非常快的,能大量减少对数据库的访问,减少数据库的压力。之前介绍过Redis这种NoSql作为缓存组件,它能够很好的作为分布式缓存组件提供多个服务间的缓存,但是Redis这种还是需要网络开销,增加时耗。本地缓存是直接从本地内存中读取,没有网络开... 继续阅读 >
202011-17 Java Guava排序器Ordering原理及代码实例 一创建排序器排序器:可以用来为构建复杂的比较器,以完成集合排序的功能:本质上来说,Ordering实例无非就是一个特殊的Comparator实例。Ordering把很多基于Comparator的静态方法(如Collections.max)包装为自己的实例方法(非静态方法),并且提供了链式调用方法,来定制和增强现有的比较器//创建排序器@TestpublicvoidcreateOreing(){//对可排序类型做自然排序,如数字按大小,日期按先后排序Ordering<Comparabl... 继续阅读 >
202010-08 Java基于Guava Retrying实现重试功能 在接口调用中由于各种原因,可能会重置失败的任务,使用Guava-Retrying可以方便的实现重试功能。首先,需要引用Guava-Retrying的包<dependency><groupId>com.github.rholder</groupId><artifactId>guava-retrying</artifactId><version>2.0.0</version></dependency>代码示例:importcom.github.rholder.retry.Retryer;importcom.github.rholder.retry.RetryerBuilder;importcom.github.rholder.retry.StopStrategies;imp... 继续阅读 >