当前位置: 首页 > 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.yutouwan.com/news/199409/

相关文章:

  • 创业网站搭建设计方案网站建设招聘启事
  • wordpress 手机网站支付宝网站后台难做吗
  • 二合一收款码免费制作网站中华室内设计网官网
  • 河南广宇建设集团有限公司网站wordpress卡死了
  • 网站开发技术课程设计报告商务网站开发考题
  • 网站域名续费怎么做有没有专业做二手老车的网站
  • 贵阳网站建设-中国互联中移建设 网站
  • 网站配置支付宝国内返利网站怎么做
  • 广元专业高端网站建设四川建设人才考试官网
  • 牛商网做的网站有哪些做网站高亮
  • 金融网站织梦模板小企业销售管理软件
  • 网站建设怎么入会计账电商培训方案
  • 用电脑做兼职的网站自己做网站教学视频教程
  • 南宁网站建设蓝云品牌广告设计制作公司网站源码
  • 网站上传照片失败建站之星网站空间根目录
  • 做网站 做好把我踢开搭建网站的空间哪里买
  • 数据库网站建设方案服装设计以及网页设计素材
  • 三门峡做网站推广怎么做轴承网站
  • 安 网站建设网络营销学校
  • 洛阳网站建设培训什么叫做电商
  • 酒厂网站源码17网站一起做网店
  • 网站改版的原因wordpress 文本 点不了
  • 做国内学历公证的网站心理学网站可以在线做量表
  • 长沙旅游网站建设成都plc培训机构哪家最好
  • iis 5 新建网站山东最新资讯
  • 免费网站设计神器文章资讯类网站
  • 绍兴网站建设团队武昌做网站多少钱
  • 潮州外贸网站建设一站式网站建设与运营
  • 网站的内部链接如何做温州网站开发定制
  • 个人网站备案流程建设通官网登录入口