文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

[正式学习java②]——数组的基本使用,java内存图与内存分配

2023-10-21 06:01

关注

一、数组的两种初始化方式

1.完整格式(静态初始化)

数据类型[] 数组名 = new 数据类型[]{元素1,元素2…};

//范例int[] arr = new int[]{1,2,3,4};

简化书写

一般我们会省略=后面的 new 数据类型[]

int[] arr = {1,2,3,4};

2.动态初始化

当不知道数组里面的初始值的时候,我们就要采用动态初始化

//申请一个长度为10的int类型的数组int[] arr = new int[10];

区别:

动态初始化的数组有初始值

整数 -> 0 浮点数 -> 0.0 引用数据类型 -> null

布尔 -> false 字符型 -> 0

静态初始化不带长度,(自动计算)

二、数组的遍历方式

通过索引循环遍历

int[] arr = {1,2,3,4};for(int i = 0; i

当然还有别的方法,我们先混个眼熟

//增强for,对于数组来说,本质与普通for相同for (int i : arr) {    System.out.println(i);}//以字符串的形式展示System.out.println(Arrays.toString(arr));

三、数组的开辟与访问

开辟:在堆上开辟一块新空间,将地址返回给数组名

访问:数组名[索引]

四、数组的注意事项

1.数组直接打印打印的是地址值

System.out.println(arr)打印的就是arr的地址值,因为地址也是一个数嘛 printf就是负责打印

2.数组在内存图中的位置

定义数组是通过new关键字,new关键字定义的所有对象都是在堆上开辟空间的

 所以下面的结果是什么 是true还是false

int[] arr1 = {1,2,3}; int[] arr2 = {1,2,3};

arr1 == arr2 // true  or  false ???

比较的是地址值为false

3.数组一旦开辟了空间长度是不可变的

虽然java弱化了指针与地址的概念,但是C的内存机制是最基础最底层的原理

4.区分数组长度为0 和 数组 == null的概念

数组长度为0 是指定义了一个长度为0的数组

数组 == null是指数组的地址为null,也就是空指针

5.理解数组越界的概念

从内存的角度理解数组越界的概念

五、java内存分配

栈:方法运行会加载进栈,局部变量会在栈上开辟空间

堆:使用new关键字创建的对象,都在这开辟空间

方法区:存储class文件

寄存器与本地方法栈:我们暂时不需要了解

一个简单的java程序,运行时的内存图

①加载class文件

②main方法为主入口,main方法进制

③调用show方法,show方法进栈

④show调用完出栈

④为变量a在栈上开辟空间

⑤输出a

      六、总结

数组何时用动态初始化、何时用静态

数组是在哪里开辟空间的

数组名==数组名比较的是什么

来源地址:https://blog.csdn.net/Panci_/article/details/133887293

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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