news 2026/6/9 18:56:47

【Java SE 基础学习打卡】33 数组的概述

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Java SE 基础学习打卡】33 数组的概述

目录

  • 前言
  • 一、先懂数组:从生活场景看懂 “数组的本质”
    • 1.1 生活化类比(秒懂核心)
    • 1.2 编程里的数组定义
    • 1.3 直观理解 “连续内存”
  • 二、数组的核心作用:批量管理同类型数据,简化操作
    • 2.1 批量存储,减少变量定义
    • 2.2 统一管理,方便遍历 / 计算
    • 2.3 快速访问,效率更高
  • 三、数组的核心特征
    • 3.1 特征 1:长度固定(一旦创建,无法修改)
    • 3.2 特征 2:元素类型一致(不能混装)
    • 3.3 特征 3:有序性(索引唯一,从 0 开始)
  • 四、新手易混点:数组 vs 单个变量(对比表)
  • 五、简单示例:数组的声明(新手先看,后续详解创建)
  • 总结

前言

之前咱们学方法时,处理数据都是 “单个来”—— 比如计算两个数的和、判断一个数是否为偶数。但实际编程中,经常要处理 “一堆同类型的数据”:比如记录一个班级 50 个学生的数学成绩、存储超市 100 种商品的价格、统计一周 7 天的气温。

如果还像之前那样,给每个成绩定义一个变量(score1、score2、…、score50),不仅写起来麻烦,后续想计算平均分、找最高分也会特别繁琐。这时候 “数组” 就能解决这个痛点:它就像一个 “统一规格的收纳盒”,能把同类型的数据整齐地装在一起,方便批量管理和操作。

一、先懂数组:从生活场景看懂 “数组的本质”

1.1 生活化类比(秒懂核心)

先看 3 个生活里的 “数组场景”,对应理解数组的本质:

生活场景对应数组概念核心匹配点
班级成绩表(按学号排序,只记数学分数)整型数组数据类型一致(都是分数 / 整数)、有序(按学号排)、连续存放(表格一行到底)
超市商品价格清单(按货架号排序,只记价格)浮点型数组类型一致(都是价格 / 小数)、有序(货架号对应位置)、连续(清单一页写完)
一周 7 天的气温记录(按周一到周日排序)浮点型数组长度固定(7 天)、类型一致(都是气温 / 小数)、有序(按日期)

1.2 编程里的数组定义

数组是相同数据类型元素的有序集合,这些元素在内存中占用连续的存储空间,可以通过 “位置编号(索引)” 快速找到对应的元素。拆解开核心关键词:

  • 相同数据类型:数组里只能装 “同一种类型” 的数据,比如全是 int、全是 double,不能混着装(比如既装分数又装学生姓名);

  • 有序集合:元素有固定的顺序,每个元素对应唯一的 “位置编号”;

  • 连续内存存储:数组的元素在内存里是 “挨在一起” 的,就像书架上一排连续的格子,没有空隙。

1.3 直观理解 “连续内存”

用书架类比内存:

  • 数组就像一个有 8 个格子的书架(长度 8),每个格子只能放 “数学课本”(类型一致);

  • 格子从左到右按 “0、1、2、…、7” 编号(数组索引从 0 开始,新手先记这个规则);

  • 格子之间没有空隙(连续内存),不能在格子 2 和 3 之间空出一格;

  • 想拿第 3 本课本,直接找编号 2 的格子就行(通过索引快速访问)。

二、数组的核心作用:批量管理同类型数据,简化操作

数组的存在,就是为了解决 “单个变量管理大量同类型数据” 的痛点,核心作用有 3 个:

2.1 批量存储,减少变量定义

不用为每个数据单独定义变量:

  • 无数组:定义 50 个变量score1score50存储 50 个成绩,代码冗长且难维护;

  • 有数组:只需要定义一个数组int[] scores = new int[50],就能装下 50 个成绩,代码简洁。

2.2 统一管理,方便遍历 / 计算

数组的有序性和连续存储,让我们能通过循环快速遍历所有元素:

  • 比如计算 50 个成绩的平均分:用 for 循环遍历数组,逐个累加成绩,再除以 50 即可;

  • 比如找最高分:遍历数组,逐个比较元素大小,记录最大值。

2.3 快速访问,效率更高

通过 “索引” 可以直接访问任意位置的元素,不用逐个查找:

  • 想查第 10 个学生的成绩:直接取scores[9](索引从 0 开始),一步到位;

  • 想修改第 5 个学生的成绩:直接赋值scores[4] = 95,无需其他操作。

三、数组的核心特征

数组的 3 个核心特征是理解和使用数组的基础,每个特征都对应明确的 “使用规则”,新手要逐个吃透:

3.1 特征 1:长度固定(一旦创建,无法修改)

数组的长度(能装的元素个数)在创建时就确定了,后续不能增加或减少,就像书架的格子数一旦做好就不能改。

  • 例子:创建一个长度为 5 的数组int[] nums = new int[5],最多只能装 5 个 int 类型元素,想装第 6 个会报错;

  • 新手避坑:不要试图 “扩容” 数组,比如想给长度 5 的数组装 6 个元素,会抛出ArrayIndexOutOfBoundsException(数组索引越界,后续会详细讲);

  • 补充:如果后续需要动态增减元素,Java 有其他容器(比如 ArrayList),但新手先掌握基础数组。

3.2 特征 2:元素类型一致(不能混装)

数组在定义时必须指定数据类型,所有元素都必须是该类型,不能混合存放不同类型的数据。

  • 正例:int[] scores只能装 int 类型的成绩(90、85、95);

  • 反例:不能在int[] scores里装字符串 “张三”、小数 85.5,编译直接报错;

  • 特殊情况:Object[]数组可以装不同类型(后续学面向对象再讲),新手阶段先关注基本类型数组。

3.3 特征 3:有序性(索引唯一,从 0 开始)

数组的每个元素都有唯一的 “索引(下标)”,索引从 0 开始,依次递增,通过索引能精准定位元素。

  • 例子:长度为 5 的数组,索引是 0、1、2、3、4(不是 1-5!新手最容易错);

  • 对应关系:索引 0 → 第 1 个元素,索引 1 → 第 2 个元素,…,索引 n-1 → 第 n 个元素;

  • 生活化类比:书架格子编号从 0 开始,0 号格是第 1 个位置,4 号格是第 5 个位置。

四、新手易混点:数组 vs 单个变量(对比表)

新手刚开始容易分不清数组和单个变量的区别,用表格对比更清晰:

特性单个变量数组
存储数据量只能存 1 个值能存多个同类型值(长度固定)
访问方式直接用变量名(比如score用 “数组名 + 索引”(比如scores[0]
内存占用单个内存单元连续的多个内存单元
适用场景存储单个数据(比如一个学生的年龄)存储批量同类型数据(比如全班学生的年龄)

五、简单示例:数组的声明(新手先看,后续详解创建)

数组的完整使用后续会讲,这里先给出最简单的声明方式,让新手有直观认识:

publicclassArrayOverview{publicstaticvoidmain(String[]args){// 声明一个能装5个int类型成绩的数组(仅声明,后续讲初始化)int[]scores;// 声明并初始化一个装3个成绩的数组(直接赋值)int[]mathScores={90,85,95};// 访问数组元素:通过索引System.out.println("第1个学生的数学成绩:"+mathScores[0]);// 输出90System.out.println("第3个学生的数学成绩:"+mathScores[2]);// 输出95}}

执行结果:

1个学生的数学成绩:903个学生的数学成绩:95

提示:这里只是简单的声明和访问,数组的创建、初始化、遍历等细节,下一节会详细讲。

总结

这一节咱们掌握了数组的核心概述,记住 3 个核心点:

  1. 数组本质:相同数据类型元素的有序集合,占用连续内存空间;

  2. 核心作用:批量存储同类型数据,简化遍历、计算等操作;

  3. 核心特征:长度固定、类型一致、索引从 0 开始的有序性。

数组是 Java 处理批量数据的基础,掌握它的核心特征,后续学习数组的创建、遍历、操作就会事半功倍。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 2:40:03

如何评估7B模型?Qwen2.5 C-Eval基准复现步骤详解

如何评估7B模型?Qwen2.5 C-Eval基准复现步骤详解 通义千问 2.5-7B-Instruct 是阿里 2024 年 9 月随 Qwen2.5 系列一同发布的 70 亿参数指令微调模型,定位“中等体量、全能型、可商用”。该模型在多项权威评测中表现优异,尤其在中文综合能力测…

作者头像 李华
网站建设 2026/6/5 2:40:01

工业自动化产线USB串口控制器驱动故障排除

工业自动化产线USB串口控制器驱动故障排除:从“找不到驱动”到系统级可靠通信 在一条高速运转的包装生产线上,上位机突然无法读取温控仪表的数据。报警弹窗不断闪烁:“ 无法打开串口COM3 ”。现场工程师赶到后打开设备管理器——熟悉的黄色…

作者头像 李华
网站建设 2026/6/5 2:39:58

告别环境配置烦恼:PyTorch通用开发镜像开箱即用体验分享

告别环境配置烦恼:PyTorch通用开发镜像开箱即用体验分享 1. 引言:深度学习开发的“第一公里”难题 在深度学习项目启动阶段,环境配置往往是开发者面临的第一个挑战。从CUDA驱动版本匹配、PyTorch与Python兼容性问题,到依赖库安装…

作者头像 李华
网站建设 2026/6/5 15:43:30

测试开机启动脚本镜像真实案例:智能家居启动器应用

测试开机启动脚本镜像真实案例:智能家居启动器应用 1. 引言:智能家居场景下的自动化需求 随着物联网技术的发展,越来越多的家庭开始部署基于树莓派等嵌入式设备的智能家居控制系统。这类系统通常依赖于一个核心控制程序,用于监听…

作者头像 李华
网站建设 2026/6/9 18:57:27

Qwen3-4B-Instruct-2507部署疑问:是否需要指定非思考模式?

Qwen3-4B-Instruct-2507部署疑问:是否需要指定非思考模式? 1. 背景与问题提出 在当前大模型推理服务的部署实践中,Qwen系列模型因其出色的性能和广泛的应用支持而受到开发者青睐。随着Qwen3-4B-Instruct-2507版本的发布,一个关键…

作者头像 李华
网站建设 2026/6/9 18:41:06

大族数控通过注册:10个月营收43亿,利润5亿 高云峰控制84%权益

雷递网 雷建平 1月19日深圳市大族数控科技股份有限公司(简称:“大族数控”)日前通过注册,准备在港交所上市。大族数控已于2022年2月在深交所上市,截至今日收盘,大族数控股价138.43元,市值589亿元…

作者头像 李华