复习

周末跟着网上和书简单的复习了一下,小小复习了一哈。主要说一下,我以前容易混淆或者不明白的地方:

栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );  只要数据运算完成所在的区域结束,该数据就会被释放。 

堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。 

  1:每一个实体都有内存首地址值。 

  2:堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。 

   3:垃圾回收机制

变量的作用域和生存期: 

变量的作用域 

    作用域从变量定义的位置开始,到该变量所在的那对大括号结束; 生命周期: 

    变量从定义的位置开始就在内存中活了; 

    变量到达它所在的作用域的时候就在内存中消失了;

成员变量和局部变量的区别: 
1:成员变量直接定义在类中。 

   局部变量定义在方法中,参数上,语句中。 

2:成员变量在这个类中有效。 

局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。

 3:成员变量存在于堆内存中,随着对象的产生而存在,消失而消失。 

局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放

这些概念有助于我理解代码和书写的正确性。

原文地址:https://www.cnblogs.com/syl1104/p/3722311.html