Java数组深度解析:定义、下标与内存分析

0 下载量 180 浏览量 更新于2024-07-15 收藏 1.57MB PDF 举报
"Java第二周学习内容主要涵盖数组的概念、定义、下标规则、内存分析以及引用数据类型的特性。" 在Java编程中,数组是一种基础且重要的数据结构,它允许程序员存储多个同类型的数据。本周的学习聚焦于数组的各个方面: 1. **定义数组**: - 数组的定义格式是:`数据类型[] 数组名 = new 数据类型[容量];` - `数据类型`:指定数组中元素的类型,如`int`、`String`等,确定后不可更改。 - `[]`:表示定义的是一个数组类型,而非单一的变量。 - `数组名`:用于操作数组的标识符,是引用数据类型,存储数组的起始地址。 2. **数组的创建与赋值**: - 使用`new`关键字动态分配内存,初始化数组。例如:`int[] arr = new int[10];`创建了一个能容纳10个整数的数组。 - `new`关键字不仅分配内存,还会将所有内存位置初始化为默认值(如整数为0,对象为`null`)。 3. **数组的下标**: - 数组的下标从0开始,到数组容量减1。例如,容量为10的数组,有效下标范围是0到9。 - 下标越界(ArrayIndexOutOfBoundsException)是常见的运行时错误,需确保访问的下标在有效范围内,避免负数或超出范围的下标。 4. **引用数据类型**: - 引用数据类型包括数组、对象和字符串,它们存储的是对象的内存地址,而不是实际的对象数据。 - 通过引用,CPU可以找到对象在内存中的位置,进而访问其内容。 - `数组名.length`属性用于获取数组的容量,这是数组的一个固有属性,占用额外的内存空间。 5. **数组内存分析**: - 数组在内存中占据连续的空间,每个元素都有自己的地址。 - `arr1.length`和`arr2.length`分别返回`arr1`和`arr2`数组的长度。 6. **数组地址转移问题**: - 示例代码中,`arr1`和`arr2`是两个独立的数组,即使它们有相同的元素数量,改变`arr1`的引用并不会影响`arr2`的值。 - 当`arr1=arr2;`后,`arr1`现在指向了`arr2`的内存地址,但原先`arr1`指向的数组并未受到影响,仍存在内存中。 理解这些基本概念对于学习Java编程至关重要,因为数组是处理批量数据的基础工具。在后续的学习中,还将涉及数组的操作,如遍历、排序、查找等高级技巧。