JVM内存划分
-
方法区:又叫静态区,存放所有class和static变量,方法区存放的都是在程序中永远唯一的元素。
-
虚拟机栈:执行引擎每调用一个函数,就为这个函数创建一个栈帧,并加入虚拟机栈。每个函数从调用到执行结束,是对应的一个栈帧的入栈和出栈。
-
本地方法区:与虚拟机栈所发挥的作用相似,区别在于虚拟机栈为执行Java代码方法服务,本地方法栈为Native方法服务
-
堆:被所有线程共享的一块区域,在虚拟机启动时创建,所有对象实例及数组都在堆上分配(使用new关键字表示在堆中开辟一块新的存储空间)
-
程序计数器:每个线程有一个计数器记录当前执行到哪个指令
程序运行过程中,多个方法遵循栈的规则入栈出栈
内存管理
数组在堆中的存储方式int[] ages = new int[]{10,20,30};
对象在堆中的存储方式