1.heap是堆,问它的结构和操作是类似数据结构学的堆吗?2.stack和heap都是位于随机访问内存RAM中的,为什么说从heap分配空间,比从stack分配,所耗费的时间多不少?

解决方案 »

  1.   

    这些都是java中的和其他的还是有区别的,其他的可以用来参考
    这个东西一句话说不清楚,建议看看JVM文档吧
      

  2.   

    有一点好处就是,在栈内存中,如果要给一个新的数据分配内存,jvm会在栈中查找时候有一样的数据,如果有,就只是将某个引用指向该数据。
    例如 int i=4;
    如果要新定义一个 int j=4;
    那么,i和j都只是指向相同的对象。
    但这样做并不会因为改变j的值而修改了i的值,当给j赋一个新值时,只是将j指向那个新的对象。不好意思说得自己都不知道在说什么了,但愿你能看明白。
      

  3.   

    1。内存管理里面的堆和栈和数据结构里的堆和栈意义是不同的,可以认为不属于一个范畴。当然对于栈来说,一点是相同的,就是后进先出的行为。
    2。对于堆,内存管理系统要维护一个表,分配的,回收的,等等。栈一般就是顺序操作(当然jvm并不保证栈是连续的),理论上会快些。其他,参考2楼。
      

  4.   

    to:ZangXT 
    不正确?
    我也是这么理解的 谁来解释下