闭包的基础概念:
闭包就是能够读取其他函数内部变量的函数
闭包的使用场景:
当需要记录一个函数的返回值的时候,有2种方式
1:使用全局变量
缺点:多线程,或者多次调用全局变量会“混淆”
2:闭包
优点:闭包的局部变量,既可以保存函数返回值,又不会影响全局变量,相当于一个theadlocal
缺点:内存占用大
函数的参数:
当一个函数执行的时候,会在栈开辟一块内存空间,同时会申明一些变量(函数的参数),所以说函数的参数传递其实是变量的赋值的过程,可变对象传递的是堆内存的引用,不可变对象传递的是常量池的引用,函数执行结束,栈空间会回收,但是如果变量被引用就不会回收(闭包)
,