开发者社区> 问答> 正文

scala中var与val会有性能差异吗?

scala中var与val会有性能差异吗?我一般能用val就用val,我记得以前学scala的时候老师说过,但是公司有个写java的,老是喜欢用var,我又不记得具体有什么影响了,上网查过后没有那种很ok的解释,只是说官方推荐val,假设有个值,我不对它做改变,就应该使用val,但是使用var也不会错,我想知道的是,在这种情况下,在性能上有差异吗,比如说在垃圾回收的时候,内存分配、回收方面?

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群。

展开
收起
初商 2019-08-02 18:12:41 1357 0
1 条回答
写回答
取消 提交回答
  • val表示不可重复赋值的变量,var表示可以重复赋值的变量。在项目中,如果变量不会再变化的话应该使用val以保证并发性。 import java.util.Date  object DatePrint { def main(args: Array[String]): Unit = { for(i <- 1 to 10) { val date = new Date; timePrint(date); Thread.sleep(1000); } }  def timePrint(t:Date): Unit = { println("the current time is " + t); }  } 注意这个程序里面的date,虽然标注成了val,但每次for循环都会在堆内存中new一个对象,同时在栈内存中也分配一个变量叫date。
    
    
     答案来源网络,供参考,希望能帮助到您
    
    2019-09-29 15:57:31
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Just Enough Scala for Spark 立即下载
JDK8新特性与生产-for“华东地区scala爱好者聚会” 立即下载
Scaling 30 TB’s of Data Lake with Apache HBase and Scala DSL at Production 立即下载