码迷,mamicode.com
首页 > 其他好文 > 详细

每天学一点Scala之lazy

时间:2017-08-13 15:12:08      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:scala   lazy   

特性:

A、将一个变量声明为lazy,则只有第一次使用该变量时,才会进行初始化;

B、  赖加载特性

使用场景:使用于比较耗时的计算业务;如网络IO,磁盘IO等;

marathon源码,与spark源码中同样大量使用了这种特性;

Java中的赖加载与scala中的赖加载的区别?

1、  Java中的赖加载,实例:如单例模式

代码如下:

技术分享

2、  Scala中实现赖加载,是通过关键字lazy来实现的,也就是说,在scala中,赖加载的实现是语法级别的,而Java中需要自己实现。

    测试scala中,lazy的效果?

  1. 未使用lazy,查看打印日志顺序

技术分享

b. 使用lazy

技术分享

marathons源码中,大量使用了此特性

技术分享


本文出自 “XEJ分布式工作室” 博客,请务必保留此出处http://xingej.blog.51cto.com/7912529/1955861

每天学一点Scala之lazy

标签:scala   lazy   

原文地址:http://xingej.blog.51cto.com/7912529/1955861

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!