java的内存划分

java的内存需要划分为5个部分
1.栈:存放的都是方法的局部变量,方法的运行一定在栈中运行
局部变量:方法的参数或者方法{}内部的变量
作用域:一旦超过作用域,立即从占内存中消失
2.堆:凡是new出来的都在堆内存中
堆内存中的数据都有一个地址值:16进制
堆内存中的数据都有一个默认值
如果是整数类型 默认0
如果是布尔类型 默认false
如果是浮点类型 默认0.0
如果是引用类型 默认为 null
3.方法区:存.class相关信息,包含方法的信息
4.本地方法栈:与操作系统相关
4.寄存器:与cpu相关

java的内存划分_第1张图片
一个对象的内存图.png
java的内存划分_第2张图片
两个对象使用同一个方法.png

java的内存划分_第3张图片
两个引用指向同一个对象.png
java的内存划分_第4张图片
使用对象类型作为方法的参数.png

java的内存划分_第5张图片
使用对象类型作为方法的返回值.png

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