文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java基础知识精通数组的内存分析

2024-04-02 19:55

关注

前言:本文章主要讲解数组的内存图,更好地掌握数组以及数组调用流程,话不多说开讲。

1.数组内存图

1.一个数组的内存图

int[] arr = new int[3]; 		//刚开始定义数组arr为int型包含三位数字,初始化为0,0,0.
arr[0] = 12;  					//数组arr第一位被赋值12
arr[2] = 14;  					//数组arr第三位被赋值14
System.out.println(arr[0]);  	//12
System.out.println(arr[1]);  	//0
System.out.println(arr[2]);		//14
System.out.println(arr);		//[I@7852e922

解释

如下图:栈相当于存放数组变量的地址,堆相当于存放数组里面的元素而他们的下标就相当于房间号。

在这里我临时定义arr的地址是0x001等同于[I@7852e922。

下面我开始介绍一下数组的调用流程 :

调用完成之后,栈和堆里的数据就会消失。

看懂了一个数组内存图,下面几个就会看懂啦。

2.两个数组的内存图

int[] arr1 = new int[]{23,12,5}; //一开始就初始化为23、12、5。
System.out.println(arr1[0]); //23
System.out.println(arr1[1]); //12
System.out.println(arr1[2]); //5
System.out.println(arr1);    //0x001
arr1[0] = 13;  //把13赋值给arr1第一位。
System.out.println(arr1[0]);  //13
int[] arr2 = {14,18,15};    //与上面同理
System.out.println(arr2[0]); //14
System.out.println(arr2[1]); //18
System.out.println(arr2[2]); //15
System.out.println(arr2);    //0x002
arr2[1] = 12;   //赋值给arr2第二位为12
System.out.println(arr2[1]); //12

3.一个变量两个数组容器的内存图

int[] arr = new int[3];		//定义一个int型的arr数组,包含三个元素初始化为0。
System.out.println(arr[0]);  // 0
arr[0] = 3;					 
System.out.println(arr[0]);	 //3
System.out.println(arr);     //0x001
arr = new int[5];         	//重新赋值int型的arr数组,包含5个元素初始化为0,并且数组地址也相应改变。
System.out.println(arr[0]); // 0
arr[0] = 5;
System.out.println(arr[0]); // 5
System.out.println(arr);    //0x002     如果不明白看下图

4.两个变量指向一个数组容器的内存图

int[] arr1 = new int[3];		//定义一个int型的arr数组,包含三个元素初始化为0。
System.out.println(arr1[0]);	//0
arr1[0] = 12;
System.out.println(arr1[0]);	//12
System.out.println(arr1);		//0x001
int[] arr2 = arr1;				//把arr1变量赋值给arr2
System.out.println(arr2[0]);	//12
arr2[0] = 13;
System.out.println(arr2[0]);	//13
System.out.println(arr2);		//0x001
System.out.println(arr1[0]);	//13

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯