java中的内存分配没有搞懂,什么栈内存、堆内存,求解释

解决方案 »

  1.   

    stack 和 heap 是用于存放不同数据的地方。
    比如你声明了一个局部基础类型的变量 如 int i = 0;
    这个变量 i 就是放在stack里面, 如果你又声明了一个引用变量如数组 Array arr = new Array[10];
    stack 里面放着一个变量arr, 这里面只是放着一个地址,而真正的数据时放在heap中的, arr指向这个区域。通过arr这个变量能访问数组里面的值!
      

  2.   

    堆内存    new 的  对象  比如  new  Student();
    栈   引用、基本类型的变量的值  比如  int   i = 9;