栈的划分、数组的内存图
栈的划分
java走中存心需要划分为5个部分:
1栈(Stack):存放的方法都是局部变量,真正方法运行都是在栈当中
局部变量:方法的参数,或者是方法{}内部的变量
特点:有作用域:一旦超出作用域,立即从栈内存中消失
堆(Heap):凡是new出来的,都是在堆当中
对内存里面的东西都是有一个地址值:地址值是16进制的
堆内存的数据都是有默认值的
整数:默认为0
浮点数:默认为0.0
字符: 默认为'\u0000'
布尔:默认为false
引用类型:默认为null
方法区(Method Area): 存储 .class 相关信息,包方法的信息
本地方法栈(Native Method Stack):与操作系统相关
寄存器(pc Register):与CPU相关
数组的内存图
首先我们创建两个动态数组,然后分别打印输出。在第二个值的时候赋值
public class array1 {
public static void main(String[] args) {
int[] ints = new int[5];
for (int i = 0; i < ints.length; i++) {
System.out.println(ints[i]);
}
System.out.println("=============");
int[] ints1 = new int[5];
System.out.println(ints1[0]);
System.out.println(ints1[1]=10);
System.out.println(ints1[2]=20);
}
}
那么画一个图来看一下,数组的内存图
我们画了以一个方法区和栈和堆 我们数组起的变量名字 会进栈
main方法会进方法区
在数组中存储中的数据 都是在 堆中
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY