复习
周末跟着网上和书简单的复习了一下,小小复习了一哈。主要说一下,我以前容易混淆或者不明白的地方:
栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 ); 只要数据运算完成所在的区域结束,该数据就会被释放。
堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。
1:每一个实体都有内存首地址值。
2:堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。
3:垃圾回收机制
变量的作用域和生存期:
变量的作用域
作用域从变量定义的位置开始,到该变量所在的那对大括号结束; 生命周期:
变量从定义的位置开始就在内存中活了;
变量到达它所在的作用域的时候就在内存中消失了;
成员变量和局部变量的区别:
1:成员变量直接定义在类中。
局部变量定义在方法中,参数上,语句中。
2:成员变量在这个类中有效。
局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。
3:成员变量存在于堆内存中,随着对象的产生而存在,消失而消失。
局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放
这些概念有助于我理解代码和书写的正确性。