关于大家经常在java中提到的 堆和 栈, 我的理解如下:
堆, 就象我们自己在家里做饭吃一样!~  想放进去什么对象炒就放进去炒,至于能不能吃, 那就看自己的造化了~~
栈, 就是我们去java小菜馆里吃!~  它那就4类8道菜,  什么红烧int啦, 清炒double啦!~   就这8道菜!~ 爱吃不吃!~ 不吃到别地吃去!~(好象也没其他菜馆去了! 自己开吧!~呵呵)至于跟数据结构中的堆 和栈  是不是一样的解释 或存储方式了!~~    我就不太懂了!烦请大家讨论, 并给予清晰的答案!~ 谢谢!~

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【bxdg42578670】截止到2008-06-30 16:50:28的历史汇总数据(不包括此帖):
    发帖数:23                 发帖分:540                
    结贴数:17                 结贴分:460                
    未结数:6                  未结分:80                 
    结贴率:73.91 %            结分率:85.19 %            
    楼主加油
      

  2.   

    可以 看看 thinking in java  
      

  3.   

    Person p = new Person();
    先是在栈中给变量p分配空间
    new Person()在堆中分配空间,
    而p就是这个对象的引用
      

  4.   


    参考:     对于一个进程的内存空间而言,可以在逻辑上分成3个部份:代码区,静态数据区和动态数据区。动态数据区一般就是“堆栈”。“栈(stack)”和“堆(heap)”是两种不同的动态数据区,栈是一种线性结构,堆是一种链式结构。进程的每个线程都有私有的“栈”,栈是系统数据结构,对于进程/线程是唯一的; 堆是函数库内部数据结构,不一定唯一   是动态的, 是存放实际对象的 用完后会释放掉


    对于这样解释我都理解了!  我想问清楚的是:  基础数据类型是在栈中一直分配好的, 就相当于菜馆里的菜铺~    还有变量名 也是吗?
      

  5.   


    栈不止8道菜哦
    String a = "aaa";
    aaa就是存在栈中