当前位置: 首页 > news >正文

潍坊网站制作维护凡科送审平台官网

潍坊网站制作维护,凡科送审平台官网,字体设计海报,模板建网站费用转载自 Java8-本地缓存这里我将会给大家演示用ConcurrentHashMap类和lambda表达式实现一个本地缓存。因为Map有一个新的方法可以在key为Null的时候自动计算一个新的value值。非常完美的实现cache。来看下代码#xff1a;12345678910111213141516publicstatic void main(String…转载自 Java8-本地缓存这里我将会给大家演示用ConcurrentHashMap类和lambda表达式实现一个本地缓存。因为Map有一个新的方法可以在key为Null的时候自动计算一个新的value值。非常完美的实现cache。来看下代码 12345678910111213141516publicstatic void main(String[] args) {    for(inti 0; i 10; i)        System.out.println(            f( i ) fibonacci(i));}staticint fibonacci(inti) {    if(i 0)        returni;    if(i 1)        return1;    System.out.println(Calculating f( i ));    returnfibonacci(i - 2) fibonacci(i - 1);}当然这种方式很傻瓜了。即使对于一个非常小的数例如fibonacci(5)上面的代码打印出很多行而且都是在进行重复计算输出如下只截取一部分 12345678910111213Calculating f(6)Calculating f(4)Calculating f(2)Calculating f(3)Calculating f(2)Calculating f(5)Calculating f(3)Calculating f(2)Calculating f(4)Calculating f(2)Calculating f(3)Calculating f(2)f(6) 8我们想要做的就是创建一个缓存用来计算斐波那契数列。最直接的方法就是在缓存中存放所有的value值。cache的创建如下 1staticMapInteger, Integer cache newConcurrentHashMap();译者注这种写法在Java8中是允许的 声明cache之后通过Map.computeIfAbsent() 方法可以在key所对应的value值不存在的情况下计算一个新的value值。超高速缓存Caching由于这个方法是自动执行的而且我们使用了 ConcurrentHashMap对象这个缓存是线程安全的不需要手动的去写同步方法。另外它不仅仅可以处理斐波那契额数列在其他地方也可以被重复使用。 不过现在我们看看如何在fibonacci()方法中使用缓存。 1234567891011staticint fibonacci(inti) {    if(i 0)        returni;    if(i 1)        return1;    returncache.computeIfAbsent(i, (key) -                 fibonacci(i - 2)                fibonacci(i - 1));}瞧瞧。不能比这个再简单了吧。想要证明吗好吧每当我们计算一个新值的时候都在控制台输出信息 1234567891011121314staticint fibonacci(inti) {    if(i 0)        returni;    if(i 1)        return1;    returncache.computeIfAbsent(i, (key) - {        System.out.println(            Slow calculation of key);        returnfibonacci(i - 2) fibonacci(i - 1);    });}程序输出如下 123456789101112131415161718f(0) 0f(1) 1Slow calculation of 2f(2) 1Slow calculation of 3f(3) 2Slow calculation of 4f(4) 3Slow calculation of 5f(5) 5Slow calculation of 6f(6) 8Slow calculation of 7f(7) 13Slow calculation of 8f(8) 21Slow calculation of 9f(9) 34在Java7下又如何实现呢 这样代码就会多一些我们可以使用double-checked locking来实现 12345678910111213141516171819202122232425staticint fibonacciJava7(inti) {    if(i 0)        returni;    if(i 1)        return1;    Integer result cache.get(i);    if(result null) {        synchronized(cache) {            result cache.get(i);            if(result null) {                System.out.println(                    Slow calculation of i);                result fibonacci(i - 2)                        fibonacci(i - 1);                cache.put(i, result);            }        }    }    returnresult;}注你实际的解决方案很可能会用到Guava Caches。 总结Lambdas 表达式是Java8中非常重要的一部分。我们不要忘记添加到库中的所有的新特性。 原文链接  Jooq翻译  ImportNew.com  -  踏雁寻花译文链接  http://www.importnew.com/10227.html
http://www.huolong8.cn/news/199409/

相关文章:

  • 辽宁建设厅官网浙江建站优化品牌
  • 诸城做网站的公司设计网站公司地址
  • 没有网站可以icp备案吗wordpress主题在线制作
  • 吉林企业做网站在wordpress注册的博客
  • 开封旅游网站建设方案策划书宁波网站建设报价多少
  • 网站上怎样做超链接深圳html5网站开发多少钱
  • 网站建设方案200字百度网站优点
  • 能源科技网站建设棋牌推广
  • 刘强东自己做网站网站交互做的比较好的
  • 建设一个视频网站兴义市住房和城乡建设局网站
  • 建设银行个人网站做美食网站的图片素材
  • 郑州网站建设公司排名沈阳网站排名工具
  • 网站项目需要什么wordpress google authenticator
  • html5开发wap网站网页设计页面链接
  • 新手怎样做网站推广找专业做网站的公司
  • 微网站建设的第一步是什么商户网站唯一订单号
  • 文秘写作网站如何做推广网站
  • 供热设施网站搭建教程浙江建设信息网
  • 网站推广计划怎么写常州市建设局网站电话
  • led网站免费模板aspnet校友录网站开发
  • 能用VUE做网站wordpress 文章加密
  • 中英文网站是咋做的行业网站开发
  • 工地接活应该去哪个平台绍兴seo排名外包
  • 网站云空间wordpress 悬浮插件
  • wordpress移除自豪的使用电脑系统优化软件
  • 做个普通的网站多少钱html5制作网站首页
  • 机械加工网站哪里找网站 地图导航代码
  • 网上建设网站深圳最穷的三个区
  • 域名注册服务网站整合营销推广策略
  • 大岭山建设网站商品详情页面模板