自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LRU、LFU算法java实现

近期使用springboot集成ehcache实现缓存,spring还支持使用简单ConcurrentMapCache实现,底层就是用ConcurrentHashMap实现。ehcache相对来说比较重,加pom依赖下载了很长时间,但是ehcache有很多可配置的选项,其中包括缓存达到一定大小淘汰的算法的选择。包括了FIFO、LRU、LFU可以根据不同的业务场景选择。一、LRU的实现比较简单,因为j

2017-11-27 18:21:43 8170 3

原创 guava 集合

1、Multimap我们一定会接触到这样的业务产生这样的结构:map<string,<list<..>>>,有的时候可以利用面向对象的方法避开这样的写法,但是有的时候只能这样,代码结构局很不美观。Multimap可以解决。 Multimap不是map 普通的map可以多个键对应一个值,而不能多个值对应一个键。可以理解为一对多的形式。而Multimap可以做到多对多的形式。一般使用ListMult

2017-11-17 18:08:41 365

原创 guava实用小方法

一、ProconditionProcondition有点快速失败的意思,就是提前对参数进行判断约束,有异常提前抛出来。 在实际业务中,从某个bean里拿出一个为空的属性作为参数,执行了很多代码,在后面某个时机程序崩掉,使用Procondition可以在拿出可能为空的参数时进行前置判断,避免执行更多的代码,有利于定位错误信息,使程序更加健壮。1.checkArgumentcheckArgument比

2017-11-17 14:25:50 642

原创 guava的ListenableFuture使用

java中并行处理带有返回值的方法,会使用ExecutorService和future异步的从Callable获取结果。public class FutureTest { //多个任务异步执行,使用线程池,并行执行 //这里任务抽象成一组数字,线程内睡相应数字的秒数,然后利用future返回结果 //任务在for循环添加进service里,submit后就开始执行,随后get时会阻塞的拿

2017-11-16 18:21:53 623

原创 简单的map-reduce的java例子

需求是去除一个key为long型,value为元素为integer的list的map的value的值。public class test1 { public static void main(String[] args) { Map<Long, Integer> map = Maps.newHashMapWithExpectedSize(5); map.put(1l, Objec

2017-10-26 20:26:09 4016

原创 简单工厂,工厂模式,抽象工厂

学习了一下关于工厂的设计模式,写个例子整理一下,例子是生产不同厂商的鼠标,可能不太合适,记录一下想法。1.简单工厂这个模式在factory里面动态选择使用哪个类public class Factory { public static Made getMade(String o) { Made made = null; switch (o) { case "logute

2017-09-06 16:58:09 247

原创 装饰者模式简单试验

近期项目里要用到很多参数类,每个参数类都有着不同的功能,为了维护方便,抽象出一个基本的基类,然后通过继承来维护,但是每个类相差不多,想到了装饰者模式进行。由于项目改动会牵扯巨大,自己写了一个测试。给一顿餐加食物,例子可能不是很形象。 面对这种逐渐多的子类需求,可能会很乱,装饰者是一种代替生成子类的方式动态的给对象增加功能的设计模式。抽象基类:public abstract class Meal {

2017-09-04 16:16:36 267

原创 spring-boot第一次搭建使用

个人理解:spring-boot作为spring的一个分支,主要用来提供面向微型服务的轻量框架。spring-boot把spring的一些通用的,默认的,繁琐的配置默认为已经配置,不用自己去进行重复的配置,但是可以增加,或者修改。1、框架中有一个默认的配置文application.properties用来指定数据库等配置。mybatis.config-locations=classpath:myba

2017-08-02 15:37:22 399

空空如也

空空如也

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

TA关注的人

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