内存分析

JVM(Java虚拟机)内存可以分为三个区域:栈(stack)、堆(heap)、方法区(method area)


1、JVM为每一个线程创建一个栈用于存放该线程执行方法的信息(局部变量、实际参数等),栈帧属于线程私有,不能共享

2、每个方法被调用都会创建一个栈帧

3、栈是由系统自动分配,速度快,是一个连续的内存空间


1、JVM只有一个堆,被所有线程共享

2、堆用于储存创建好的对象

3、堆是一个不连续的内存空间,速度慢

方法区
1、方法区实际也是堆

2、JVM只有一个方法区,被所有线程共享

3、方法区用来存放程序中永远不变或者唯一的内容,如(类信息、静态变量、静态方法、字符串常量)

示例:


源代码.png

内存分析.png

你可能感兴趣的:(内存分析)