变量,作用域和内存问题笔记

1、基本类型的值直接保存在栈里
2、引用类型的值保存在堆里,而栈里保存的是一个指向堆的指针。
3、从一个变量向另外一个变量复制时,复制的只是栈里的内容。所以基本类型会直接复制的栈里的值。而引用类型复制的栈只是一指向堆的指针,所以会造成对象引用。
4、作用域链。每个函数被调用时都会创建一个自己的作用域链,作用域链的前端始终都是当前执行环境的变量对象,末端是全局环境的变量对象。
5、垃圾回收,客户端自己会有垃圾回收的机制(标记清除,引用计数)。我们解除变量引用(a = null)并不是直接回收内存,而是变量脱离执行环境。等待客户端的回收垃圾机制,把内存回收。
原文地址:https://www.cnblogs.com/hrw3c/p/5275088.html