JVM内存管理机制:
堆空间,永久存储区JAVA内存分析:
寄存器
堆栈(stack)
堆(heap)
静态存储
常量存储
非RAM存储Java heap (Xmx, Xms) 和java进程的heap是两回事情
java进程的heap包含:
Java Heap
Permanent Generation
Thread stacks
Native code
Directly allocated memory
Code generation
Garbage collection
TCP buffersJava heap (Xmx, Xms) 和java进程的heap为什么说是两回事?JVM内存管理 与 JAVA内存分析 还有下面的 java进程的heap 和Java heap(Xmx,Xms)
他们之间谁包括谁?有何区别?

解决方案 »

  1.   

    我估计,JVM是用C开发的,所谓JVM的堆啊什么的,是针对JVM这个C开发的进程
    而JAVA的堆,栈是在JVM上运行的JAVA运行时里的堆和栈,也就是说是逻辑上的,而里面的栈很可能实际的存储位置是JVM里的堆。毕竟虽然是编译好的字节码,还是解释型的。
    要知道堆,栈其实是ADT(Abstract Data Structure),即抽象数据结构,其物理数据数据结构可能是整块的内存(像数组一样),也可能是链表形式。
      

  2.   

    http://www.ibm.com/developerworks/cn/java/j-lo-clobj-init/index.html
    http://developer.51cto.com/art/200907/135143.htm
      

  3.   

    不对啊 现在的新的JVM不都是用JAVA语言开发的吗