如题,数据结构中所说的stack和heap的实现方法与特性我还算了解。请问JVM中的stack和heap的实现方法与特性和普通的数据结构一样吗。谢~~

解决方案 »

  1.   

    堆区:
    1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)
    2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身
    栈区:
    1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中
    2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。
    3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
      

  2.   

    JVM中的stack和heap的实现方法与特性和普通的数据结构是一样
      

  3.   

    概念和要实现的目的都是和数据结构里面讲的是一样的。
    stack还好说点,也就是先进后出,变例不多。但是堆的话,要说的东西就太多了。数据结构里面,我还能记住名字的就有很多:比方说,2-3 heap,Beap,Binary heap,Binomial heap,D-ary heap,Fibonacci heap,Leftist heap,Pairing heap,Skew heap,Soft heap,Ternary heap, Treap,等等等等。
    每种都有自己的优缺点:有的插入快,也就是new一个实例时快;有的是删除快,那么System.gc()时快。
    实在不知道sun的jre的内存堆是用上面哪个数据结构来实现的。