JVM内存结构由五部分组成:
堆:java堆是所有线程共享的一块内存,几乎所有的对象实例和数组都要在堆中分配内存,因此该区域也经常发生垃圾回收操作。
方法区:存放已被加载的类信息。比如:常量、静态变量等。
虚拟机栈:线程私有的,每个方法执行时都会创建一个栈帧,用来存储局部变量、操作数、动态链接以及方法返回等信息。当线程请求的栈深度超出了虚拟机允许的最大深度就会抛出StackOverFlowError错误。
本地方法栈:线程私有的。保存的是native方法的信息,当JVM创建的线程执行native方法时,JVM不会在虚拟机栈中创建栈帧,而是简单的动态链接并直接调用该方法。
程序计数器:线程私有的。是一块很小的内存,用来记录当前线程执行的行号,也就是记录当前线程执行到哪一行代码。
标签:私有,虚拟机,线程,内存,JVM,方法,结构 From: https://www.cnblogs.com/yhb-blogs/p/17431145.html