-
内存:可理解为“内存条”,所有软件在程序运行时都会进入到内存中
-
内存划分(5块)
① 栈(Stack)
主要运行方法,方法执行完毕会弹栈,释放空间
② 堆(Heap)
a.主要存放对象、数组,每new一次都会在堆中开辟空间,并分配地址值
b.堆中存放的数据都有默认值,比如:整数为0,小数为0.0,字符为‘\u000’,boolean为false,引用数据类型为null
③ 方法区(Method Area)
代码的预备区,记录类和方法的信息,主要保存class文件和其中的信息,代码运行之前需要先进内存(方法区)
③ 本地方法栈(Native Method Stack)
专门运行本地方法的,本地方法可以理解为堆对java的扩充,有很多功能,java实现不了,所以就需要依靠本地方法完成(本地方法都是通过c语言编写的)
④ 寄存器(pc Register)
和CPU有关 -
方法区、栈、堆关系图
java内存详解
最新推荐文章于 2024-08-23 15:54:50 发布