本文目录一览:
JAVA如何分配内存的?栈内存是什么?堆内存?数据区?
你上面写的程序有问题,我就不说了,自己看看书。
关于java内存分配是这样的:
程序代码存储在"code segment"中,静态变量和字符串常量存储在“data segment"区域中,局部变量存储在"stack"(栈内存)中,nwe出来的东西(即对象)存储在"heap"(堆内存)中。
Java中内存分为几块
细分有5块:
1.寄存器
——
供CPU使用
2.本地方法区
——
调用系统底层内容
3.方法区(也叫:数据区,共享区,共享数据区)
——
存放全局变量,静态变量和字符串常量,和方法
4.栈
——
存放函数的参数值,局部变量的值等
5.堆
——
存放对象
Java静态方法和实例方法在内存的分布情况
像类、静态(static)变量还有代码块都存储在方法区里,栈中存储的是静态方法、实例方法和变量,堆中存储的是实例对象和实例变量。