在JVM中,堆栈内存会占用多少内存空间?

时间:2015-11-19 01:28:16

标签: java jvm

正如我所读到的,JVM有两个内存空间(在java 8中),堆和元空间。

我们可以使用-Xss标志指定堆栈内存(正如我已经阅读过,java 8中默认为1MB)。如果java程序创建了数千个线程,那么堆栈的内存可能非常重要。

那么,线程堆栈驻留在哪个内存空间(堆或元空间)中?

1 个答案:

答案 0 :(得分:-1)

Java虚拟机内存由区域组成。存储变量和方法的堆栈区域以及存储其他所有内容的堆空间区域。 Java堆空间再次在称为代的不同区域中构建,并且存储对象的位置取决于对象的生存时间。

  

JVM中只有一个堆,所有线程共享它。该   堆只包含对象。没有办法孤独   堆上的原始类型或对象引用 - 这些必须是   一个对象的一部分。数组驻留在堆上,包括数组   原始类型,但在Java中,数组也是对象。

     

除了Java堆栈和堆之外,其他地方数据可能存在   在JVM中是方法区域,它包含所有类(或   程序使用的静态变量。方法区域类似于   堆栈中只包含原始类型和对象   引用。然而,与堆栈不同,类中的变量   方法区域由所有线程共享。

JVM中只有一个堆,并且所有线程都共享它。有关详细信息,请继续阅读here