尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Java 数组全套精讲(定义、初始化、默认值、遍历、Arrays工具类、引用机制、方法传参)2026.7.11
一、数组概述数组是同一数据类型的有序集合在内存中占用连续的存储空间属于引用数据类型。数组一旦创建长度不可改变。定义格式int[] a;推荐int a[];不推荐兼容C语言写法二、数组三种初始化方式1. 静态初始化简写直接赋值自动确定数组长度int[] arr {1,2,3,4};2. 标准静态初始化支持先声明后赋值int[] arr new int[]{1,2,3,4};3. 动态初始化仅开辟空间只指定数组长度系统自动赋默认值int[] arr new int[10];三、数组默认初始化值动态初始化后数组元素自动赋值byte、short、int →0long →0Lfloat →0.0fdouble →0.0dchar →\u0000空字符不可见boolean →false所有引用类型 →null四、数组两种遍历方式1. 普通 for 循环带下标、可修改元素适用场景需要索引、需要修改数组内容int[] arr {10,20,30,40}; for(int i 0; i arr.length; i){ System.out.println(arr[i]); }2. 增强 for 循环 for-each只读、无下标适用场景只读取数据代码简洁缺点无法获取索引不能修改原数组元素public class Main { public static void main(String[] args) { int[] arr {1, 2, 3, 4, 5}; // 示例数组 for(int num : arr){ System.out.println(num); } } }for (元素类型 变量名 : 数组或集合) { // 循环体 }int num声明一个临时变量num类型与数组元素类型一致此处为int。: arr指定要遍历的数组arr。System.out.println(num)在每次循环中打印当前元素的值。五、Arrays 工具类常用方法导包import java.util.Arrays;1. 数组打印Arrays.toString()打印一维数组Arrays.deepToString()打印多维数组import java.util.Arrays; public class ArrayPrintExample { public static void main(String[] args) { int[] arr {1, 2, 3}; System.out.println(Arrays.toString(arr)); int[][] arr2 {{1, 2}, {3, 4}}; System.out.println(Arrays.deepToString(arr2)); } }2. 数组排序 sort()基本类型默认升序包装类数组可自定义排序规则int[] arr {5, 2, 9}; Arrays.sort(arr); // 升序排序 System.out.println(Arrays.toString(arr)); // 输出结果降序排序包装类数组Integer[] nums {3, 1, 2}; Arrays.sort(nums, (a, b) - b - a); // 降序排序 System.out.println(Arrays.toString(nums)); // 输出结果基本类型数组如int[]只能使用默认的升序排序降序排序需要使用包装类数组如Integer[]Lambda表达式(a, b) - b - a实现了降序比较逻辑3. 二分查找 binarySearch()必须先升序排序找到返回索引未找到返回-(插入点)-1int[] arr {1,2,3,5,9}; int index Arrays.binarySearch(arr,5);4. 数组拷贝copyOf从头拷贝可扩容/缩容copyOfRange区间拷贝左闭右开[ int[] arr {1,2,3}; int[] newArr Arrays.copyOf(arr,5); int[] sub Arrays.copyOfRange(arr,1,3);5. 数组填充 fill()批量给数组赋值Arrays.fill(arr,8); // 全部填充Arrays.fill(arr,1,3,6); // 区间填充6. 数组内容比较equals比较一维数组内容deepEquals比较多维数组内容六、数组引用机制核心考点1. 内存分布引用在栈对象在堆栈数组引用变量存堆地址堆数组真实数据连续空间2. 引用特点一个引用同一时刻只能指向一个对象一个对象可以被多个引用指向int[] a {1,2,3}; int[] b a; b[0] 99; // a、b同时变化3. 与 equals 区别比较地址是否同一个数组Arrays.equals()比较数组内容4. null 空引用数组变量 null引用不指向任何堆空间再次访问数组元素 →NullPointerException 空指针异常七、方法中数组引用的应用重难点核心原理数组是引用类型方法传参传递的是地址不是拷贝。两大铁律方法内修改数组元素→ 原数组改变方法内给形参new新数组→ 原数组不变场景1方法内修改数组元素外部受影响public static void change(int[] arr) { arr[0] 999; // 修改传入数组的第一个元素 } public static void main(String[] args) { int[] nums {10, 20, 30}; // 原始数组 change(nums); // 传递数组引用修改原数组 // 此时nums[0]的值变为999 }场景2形参重新new数组外部不受影响public class ArrayResetExample { public static void reset(int[] arr) { arr new int[3]; // 只改变局部引用 arr[0] 888; } public static void main(String[] args) { int[] originalArray {1, 2, 3}; System.out.println(调用前: Arrays.toString(originalArray)); reset(originalArray); System.out.println(调用后: Arrays.toString(originalArray)); } }场景3方法返回数组引用public static int[] getNewArray() { int[] arr {1, 2, 3}; // 在堆内存中创建数组对象 return arr; // 返回数组的引用地址 }八、总结数组是同类型、定长、连续空间的引用类型三种初始化简写静态、标准静态、动态初始化基本类型默认0/0.0/false引用类型默认null普通for带下标可改值for-each简洁只读Arrays类打印、排序、查找、拷贝、填充、比较引用在栈对象在堆多引用共享同一个数组方法传数组传的是地址改元素影响外部改引用不影响外部。
RELATED

相关推荐

STM32 AT命令解析库:高效嵌入式通信的终极解决方案

STM32 AT命令解析库:高效嵌入式通信的终极解决方案

STM32 AT命令解析库:高效嵌入式通信的终极解决方案 【免费下载链接】atc AT-Command parser for STM32 项目地址: https://gitcode.com/gh_mirrors/at/atc 在嵌入式开发领域,串口通信是连接微控制器与外部模块的核心桥梁,而AT命令则是…

📅 2026/8/22 19:58:16
SolidWorks 2024 草图绘制效率提升:5个核心工具与3种几何关系实战详解

SolidWorks 2024 草图绘制效率提升:5个核心工具与3种几何关系实战详解

SolidWorks 2024 草图绘制效率提升:5个核心工具与3种几何关系实战详解在机械设计领域,草图绘制是三维建模的基础环节,其效率直接影响整个设计流程的流畅度。SolidWorks 2024版本针对草图模块进行了多项优化,但许多用户仍停留在基础…

📅 2026/9/8 8:56:19
YOLO与GPT结合:高效完成目标检测学术论文的实践指南

YOLO与GPT结合:高效完成目标检测学术论文的实践指南

这次我们来看一个对研究生和算法工程师特别实用的主题:如何利用最新的目标检测模型(YOLOv26/v11/v8/RT-DETR)和大语言模型(Codex/GPT)快速完成一篇高质量学术论文。这个组合能大幅提升论文写作效率,特别是在…

📅 2026/9/9 22:50:07
MORE NEWS

更多资讯

📰

SPSS多元线性回归全流程:从数据准备到结果解读与避坑指南

简介:这份PDF面向备考统计类考试、需要掌握多元线性回归实操的读者,以雇员薪资数据为案例,完整呈现SPSS软件的操作截图流程。资源包共1个PDF文件,大小约7.91MB,内容涵盖数据输入、变量设置、模型建立、回归分析与结果解…

📰

Qwen2.5-0.5B 与 1.5B 选型后,把跨档 API 对照的模型通道改到 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

集团信息化规划实战:资产盘点、问题诊断与需求落地

简介:这是一份面向企业信息化规划人员、IT管理者及咨询顾问的实战分析文档,以盾安集团为案例,完整覆盖信息化规划前期所需的现状摸底、问题诊断与需求梳理。内容按软件环境、硬件环境两条主线展开:软件侧统计了43个在用系统&#…

📰

Stata实战:CSMAR资质认定数据清洗与DID面板匹配全流程

用 Stata 处理 CSMAR 数据库的朋友,应该都体会过从下载到真正能跑回归之间的那段“灰色地带”。我最初接触的就是 CSMAR 里最小但非常实用的一个子库——资质认定数据库,代码叫 QUA。当时我拿到压缩包,以为把文件读进 Stata 就完事了&#xf…

📰

Aider vs Cline:同一把 TaoToken Key 跑同一个 Python 仓库的依赖升级

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Google styleguide 文档最佳实践:六个原则打造小而活的工程文档

Google styleguide 文档最佳实践:六个原则打造小而活的工程文档 【免费下载链接】styleguide Style guides for Google-originated open-source projects 项目地址: https://gitcode.com/gh_mirrors/st/styleguide 导读 本文以 Google styleguide 项目仓库中…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬