当前位置: 首页 > news >正文

Java基础——数组1

一、数组

1.1 什么是数组

📚 定义:

数组(Array) 是一种存储相同类型元素的有序集合,具有固定的长度和连续的内存空间。

🧩 特点:

  • 同类型:所有元素必须是同一数据类型(基本类型或引用类型);
  • 固定长度:一旦创建,长度不可变;
  • 索引访问:通过整数索引(从 0 开始)快速访问元素;
  • 连续存储:在内存中占用连续空间,支持随机访问(O(1) 时间复杂度)。

1.2 数组的定义语法与静态初始化

定义语法:

数据类型[] 数组名;
// 或
数据类型 数组名[];

 静态初始化(声明时直接赋值):

int[] scores = {85, 92, 78, 96, 88}; // 直接指定值
String[] names = {"Alice", "Bob", "Charlie"};

✅ 编译器自动推断数组长度:scores.length = 5

1.3 数组元素访问

数组的地址值:

访问方式:

使用索引(index)访问元素,索引从 0 开始。

数组名[索引]
int[] arr = {10, 20, 30, 40};
System.out.println(arr[0]); // 输出:10
System.out.println(arr[3]); // 输出:40

常见错误:数组越界

System.out.println(arr[5]); // ❌ ArrayIndexOutOfBoundsException

✅ 检查边界:

if (index >= 0 && index < arr.length) {System.out.println(arr[index]);
}

1.4 数组遍历

方法一:传统 for 循环(带索引):

int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);
}

🔹 方法三:while 循环:

int i = 0;
while (i < arr.length) {System.out.println(arr[i]);i++;
}

1.5 数组的动态初始化

 动态初始化:先声明长度,再逐个赋值:

int[] arr = new int[5]; // 创建长度为 5 的数组
arr[0] = 10;
arr[1] = 20;
// ...

虚拟机给出默认的初始化值

🔹 默认值:

  • 基本类型:int → 0double → 0.0boolean → falsechar → \u0000
  • 引用类型:null

1.6 数组的内存图

  • arr 是引用变量,存储的是数组对象在堆中的首地址
  • 数组对象在堆中连续存储
  • 修改数组内容会影响堆中数据,不影响栈中引用。

1.7 数组的常见问题

❌ 问题 1:数组越界异常

int[] arr = new int[3];
System.out.println(arr[3]); // ❌ IndexOutOfBoundsException

❌ 问题 2:空指针异常(未初始化就访问)

int[] arr;
System.out.println(arr[0]); // ❌ NullPointerException
// 必须先初始化:arr = new int[5];

❌ 问题 3:混淆 = 和 ==

int[] a = {1, 2};
int[] b = {1, 2};
System.out.println(a == b); // ❌ false!比较的是引用地址
System.out.println(Arrays.equals(a, b)); // ✅ true

✅ 使用 Arrays.equals() 比较数组内容。

❌ 问题 4:修改数组长度

int[] arr = new int[5];
arr.length = 10; // ❌ 编译错误!length 是 final 字段

✅ 若需可变长度,应使用 ArrayList

http://www.dtcms.com/a/611525.html

相关文章:

  • 关于做公司网站成都企业管理培训课程
  • 新开传奇手游发布网站网站首页设计多少钱
  • 设计企业门户网站org是国外的网站吗
  • ACL 2025论文分享|一种同时支持文字、语音、草图、艺术图和低分辨率图等多模态内容检索的新框架Uni-Retrieval
  • 免费在线网站xp系统建设网站
  • 专利协会网站建设方案cpu占用超出网站空间的分配值
  • Kubernetes 证书以及证书续期、过期处理
  • 单页面竞价网站厦门湖里区建设局网站
  • YOLOv5 详细讲解文档
  • 计算机网络技术网站开发优化好的网站
  • 网站备案账号是什么石家庄微网站建设
  • 营销网站和展示型网站维护一个网站
  • 西安网站建设制作专业公司创建公司为什么必须三个人
  • 广安做网站公司海口网络公司网站建设
  • 第二部分(下):套接字
  • seo网站优化培训多少价格中国建设银行app官方下载
  • 临沂网站建设那家好建设网站需要专业
  • 软考~系统规划与管理师考试——真题篇——章节——第18章 智慧城市发展规划——纯享题目版
  • 站长工具seo综合查询怎么使用的精品网站建设费用 找磐石网络一流
  • 做宣传图片的网站微信小程序开发视频完整教程
  • Linux环境变量持久化完全指南
  • 电商网站前端制作分工西宁做网站需要多少钱
  • dede鲜花网站模板下载石家庄企业网站制作哪家好
  • 织梦网站搬家教程怎么百度推广
  • Linux网络数据链路层
  • 苹果iOS测试版描述文件详细安装步骤指南
  • 百度收录好的免费网站保险查询平台
  • 莱州网站定制wordpress 粘贴表格
  • 织梦做的网站网速打开慢是怎么回事网站模板和定制的区别
  • 织梦网址导航网站模板wordpress电商