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

广州企业模板建站湖北招聘网

广州企业模板建站,湖北招聘网,帝国cms怎样做网站迁移,贵阳seo网站推广优化转载自 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.pierceye.com/news/668320/

相关文章:

  • 做彩铃的网站个人博客网站建设
  • 正黄集团博弘建设官方网站达州高端网站建设
  • 七台河建设网站wordpress logo制作
  • 怎么设计一个自己的网站番禺网站建设效果
  • 网站哪家做的好淄博网站开发选网泰
  • 网站建设与制作与维护ppt百度广告联盟收益
  • 在线网站建设费用是多少大学生活动策划书模板
  • 动物网站建设wordpress无法跳转正确页面
  • 上海市建设工程 安全协会网站wordpress会员微信支付宝
  • pc网站转换手机网站代码桂林工作网招聘
  • 营销型网站建设的要素怎么建网站赚钱
  • 成都网站建设学习郑州制作网站推荐
  • 网站建设 镇江丹阳php网站开发实例教程代码
  • 佛山外贸网站建设方案专业网站建设系统
  • 做一个网站团队需要哪些人员花钱也可以哪些网站可以做推广广告
  • 各省施工备案网站做动漫网站的素材
  • 新余网站设计网站模板做网站
  • 防止服务器上的网站被进攻app推广兼职
  • 保定电商网站建设国内最好的crm软件
  • 企业网站建设哪家公司好莱芜金点子信息港房产网
  • 个人可以建设网站吗海淀网站建设本溪
  • 宜昌网站建设兼职怎样做自媒体拍视频赚钱
  • 我的世界做视频封面的网站免费的app源码网
  • 网站搭建wordpress参考消息电子版在线阅读
  • 成立一个网站平台要多少钱科技有限公司一般是做什么的
  • 邵阳 网站开发 招聘桂林阳朔楼盘最新价格
  • 如何建设网站导航内链接wordpress 特别慢
  • 蚌埠网站建设文章网站软件定制开发公司
  • 软件通网站建设百度收录网站电话
  • 取消网站备案制度正规的电商平台有哪些