数组 (Java 入门笔记)

相比之前的随笔, 之后我不会在例题写在笔记里了, 然后把练习作为对笔记的运用单独放在另一篇文章里 (跳转连接附于文末).

于是相比之前, 这篇随笔更精简了.


数组是一种容器, 可以用来存储同种数据类型的多个值.

需注意隐式转换.

建议: 容器类型与存储的数据类型一致.

隐式转换补充:

  1. byte → short → int → long → float → double
  2. char → int → long → float → double

定义

第一种 (主流):

数据类型 [] 数组名
int[] array

第二种:

数据类型 数组名 []
int array []

初始化

静态初始化

指定数组元素, 系统根据元素个数计算出数组长度.

使用情景: 已知要操作的具体数据.

简写形式:

数据类型[] 数组名 = {元素};
int[] array = {1, 2, 3};

完整形式:

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

动态初始化

只指定数组长度, 由系统为数组分配初始化值.

使用情景: 只明确数据个数, 但不知道具体的值.

数组类型[] 数组名 = new 数组类型[数组长度];
int[] array = new int [3];

在这之后可以用 arr[0] = 某个值 把值放进去.

默认初始化值

整形 浮点 字符 boolean 引用数据*
默认初始化值 0 0.0 \u0000 (空格) false null

元素访问

当你直接打印 array 时, 输出的是数组的地址值 (数组在内存中的位置).

获取数组中的元素

数组名[下标索引]

用法: 可以赋值给一个变量, 也可以直接使用.

如:

int[] arr = new int[]{11, 22, 33};
int a = arr[0];//下标索引 0.
int b = arr[1];//下标索引 1.
//复制给一个变量:
System.out.println(a + " " + b);//输出: 11 22
//直接使用:
System.out.println(arr[0]);//输出: 11

把值/变量存储到数组中

数组名[下标索引] = 数值或变量

如:

arr[0] = 164;
arr[1] = num;

覆盖之后, 原来的值就会消失.

数组遍历

将数组的所有内容取出来

length

表示数组长度的一个属性

用法: 数组名.length.

常规遍历

常规 for 循环.

int arr[] = {1, 2 ,3};
for (int i = 0; i < arr.length; i++) {
	System.out.println(arr[i]);
	}
//i 表示数组里的每一个下标索引
//arr[i] 表述数组里的每一个元素.

idea 快捷键: 数组名.fori

foreach 遍历

增强 for 循环 (在前一篇文章有涉及到: https://www.cnblogs.com/LinghuSumire/p/19821999#增强-for-循环).

int arr[] = {1, 2, 3};
for (int x : arr) {
	System.out.println(x);
	}

只读遍历可用, 需要修改组内元素 (初始化, 赋值) 时不可用.

数组常见问题

数组越界

访问了不存在的索引.

如:

int[] arr = {1, 2, 3};
System.out.println(arr[3]);//数组没有下标为 3 的元素

数组内存分配

Java 内存分配

: 方法运行时使用的内存.

: 存储对象、 数组 (new 创建的).

方法区: 可运行的 class 文件.

本地方法栈: 虚拟机使用操作系统的时候使用.

寄存器: CPU 使用.

屏幕截图 2026-04-26 000835

数组的内存图

结论:

只要是 new 出来的就是在栈里开了一个空间.

new 了多少次, 栈里就有多少个小空间, 每个小空间里有各自的数据.

屏幕截图 2026-04-26 002102

两个数组指向一个空间的内存图

public static void main(String[] args) {
    int arr1 = {11, 22};
    int arr2 = arr1;//没有 new:把 arr1 的地址赋值给arr2. 
}

它们共用一块地方.

屏幕截图 2026-04-26 003153

	arr2[0] = 33;

arr2 赋值, 直接改变它们共用空间里下标 2 的元素.
屏幕截图 2026-04-26 003219

结论:

两个数组指向同一个小空间时, 若其中一个数组对这个小空间的值进行改变, 其他数组去访问这个位置得到的就会是改变后的值.

练习

点击跳转

posted @ 2026-04-25 01:57  令狐澄禮  阅读(12)  评论(0)    收藏  举报