scala中var与val会有性能差异吗?我一般能用val就用val,我记得以前学scala的时候老师说过,但是公司有个写java的,老是喜欢用var,我又不记得具体有什么影响了,上网查过后没有那种很ok的解释,只是说官方推荐val,假设有个值,我不对它做改变,就应该使用val,但是使用var也不会错,我想知道的是,在这种情况下,在性能上有差异吗,比如说在垃圾回收的时候,内存分配、回收方面?
本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群。
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。
答案来源网络,供参考,希望能帮助到您
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。