Java第五章
一、数组基础1. 定义数组是存储一组相同数据类型数据的容器属于引用数据类型。2. 特点• 内部所有元素数据类型统一• 创建完成后长度固定无法修改• 元素依靠索引访问索引从0开始最大索引为数组长度-13. 适用场景批量存储、处理多个同类型数据二、一维数组1. 三种初始化方式1先声明再分配空间int[] arr;arr new int[5];2声明同时分配空间int[] arr new int[5];3静态初始化直接赋值元素int[] arr {1,2,3,4,5};2. 数组默认值数组创建未手动赋值时系统自动赋予初始值• byte、short、int、long0• float、double0.0• char空字符 \u0000• booleanfalse• String、数组等引用类型null3. 数组访问与遍历1. 通过索引读写元素arr[0] 10;System.out.println(arr[0]);2. 普通for循环遍历for(int i 0; i arr.length; i){System.out.println(arr[i]);}3. 增强for循环仅读取元素for(int num : arr){System.out.println(num);}4. 基础示例代码1数组求和求平均值public class ArraySum{public static void main(String[] args){int[] score {88,95,76,82,90};int sum 0;for(int i 0; i score.length; i){sum score[i];}System.out.println(总分 sum);System.out.println(平均分 sum * 1.0 / score.length);}}2获取数组最大、最小值public class ArrayMaxMin{public static void main(String[] args){int[] arr {12,45,7,99,23};int max arr[0];int min arr[0];for(int i 1; i arr.length; i){if(arr[i] max){max arr[i];}if(arr[i] min){min arr[i];}}System.out.println(最大值 max);System.out.println(最小值 min);}}三、二维数组1. 概念数组中存储一维数组可看作多行多列结构。2. 初始化方式1固定行列长度int[][] arr new int[2][3];2不规则二维数组每行长度可不同int[][] arr new int[3][];arr[0] new int[2];arr[1] new int[4];arr[2] new int[1];3静态初始化int[][] arr {{1,2},{3,4,5},{6}};3. 二维数组遍历嵌套循环public class TwoArrayTest{public static void main(String[] args){int[][] arr {{11,22},{33,44,55},{66}};for(int i 0; i arr.length; i){for(int j 0; j arr[i].length; j){System.out.print(arr[i][j] );}System.out.println();}}}四、数组内存分配1. 栈内存存放数组变量名存储数组在堆中的地址值2. 堆内存存放数组实体、所有元素数据3. 地址传递特性将数组变量直接赋值给另一个变量两个变量指向堆中同一个数组实体一方修改元素另一方同步变化int[] a {1,2,3};int[] b a;b[0] 99;五、数组常见异常1. ArrayIndexOutOfBoundsException 数组索引越界触发条件索引小于0或索引大于等于数组长度2. NullPointerException 空指针异常触发条件数组变量为null未指向堆内存实体直接访问数组元素六、Arrays工具类1. 使用前提导入包 import java.util.Arrays;2. 常用方法• Arrays.toString(数组)输出数组全部元素• Arrays.sort(数组)对数组元素升序排序• Arrays.equals(数组1,数组2)对比两个数组内所有元素是否完全相同• Arrays.copyOf(原数组,新长度)复制数组可实现数组扩容3. 工具类示例import java.util.Arrays;public class ArraysTest{public static void main(String[] args){int[] arr {5,2,9,1,3};System.out.println(Arrays.toString(arr));Arrays.sort(arr);System.out.println(Arrays.toString(arr));}}七、基础排序算法冒泡排序原理相邻两个元素依次对比逆序则交换每一轮确定一个末尾最大值public class BubbleSort{public static void main(String[] args){int[] arr {3,1,5,2,4};for(int i 0; i arr.length - 1; i){for(int j 0; j arr.length - 1 - i; j){if(arr[j] arr[j1]){int temp arr[j];arr[j] arr[j1];arr[j1] temp;}}}for(int num : arr){System.out.print(num );}}}

相关新闻

洛雪音乐音源全攻略:3分钟解锁全网无损音乐库

洛雪音乐音源全攻略:3分钟解锁全网无损音乐库

洛雪音乐音源全攻略:3分钟解锁全网无损音乐库 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 洛雪音乐作为一款强大的开源音乐播放器,其核心魅力在于能够通过配置音源文件来…

2026/6/18 5:10:59阅读更多 →
向量引擎 API 中转站怎么选?正规、稳定、企业级向量接口的完整选型指南

向量引擎 API 中转站怎么选?正规、稳定、企业级向量接口的完整选型指南

如果你已经知道自己要的是向量检索接口,那么真正的问题通常不是“要不要接”,而是“接哪一个更划算、更稳、更正规”。市面上的向量 API 中转平台看起来都差不多,真正拉开差距的地方,往往不是演示页有多漂亮,而是价格会…

2026/6/18 5:10:59阅读更多 →
Ubuntu系统root权限开启与安全管理全解析

Ubuntu系统root权限开启与安全管理全解析

1. 项目概述:为什么要在Ubuntu中开启root?在Linux世界里,root用户是拥有至高无上权限的“超级管理员”。对于Ubuntu这个以用户友好和安全著称的发行版,其默认设计是禁用root用户的直接登录,转而鼓励用户通过sudo命令来…

2026/6/18 5:10:59阅读更多 →
AI落地为什么失败?—95%的企业AI项目死在workflow上

AI落地为什么失败?—95%的企业AI项目死在workflow上

来源: BG2 Pod / YouTube 嘉宾: Ali Ghodsi(Databricks CEO)、Arvind Jain(Glean CEO) 主持人: Apoorv Agrawal(Altimeter合伙人) 总时长: 45分00秒 博客日期…

2026/6/18 6:41:05阅读更多 →
TikTok加密参数逆向实战:从SSL Pinning绕过到算法黑盒调用

TikTok加密参数逆向实战:从SSL Pinning绕过到算法黑盒调用

1. 项目概述与核心价值最近在移动安全与数据采集领域,TikTok的加密参数逆向一直是个热门且颇具挑战性的话题。无论是出于安全研究、竞品分析,还是构建合规的数据处理管道,理解其客户端与服务器之间复杂的通信加密机制都至关重要。这个项目标题…

2026/6/18 6:41:05阅读更多 →
TradingView股票筛选器Python包终极指南:三步实现自动化交易分析

TradingView股票筛选器Python包终极指南:三步实现自动化交易分析

TradingView股票筛选器Python包终极指南:三步实现自动化交易分析 【免费下载链接】TradingView-Screener A package that lets you create TradingView screeners in Python 项目地址: https://gitcode.com/gh_mirrors/tr/TradingView-Screener TradingView-…

2026/6/18 6:41:05阅读更多 →
工业级AI模型落地避坑指南:数据质量、特征工程与线上监控实战

工业级AI模型落地避坑指南:数据质量、特征工程与线上监控实战

1. 项目概述:这不是一篇“理论综述”,而是一份我带团队落地37个工业级模型后,用血泪换来的避坑清单你点开这篇内容,大概率不是为了重温“过拟合是什么”“梯度消失怎么定义”这类教科书定义——这些概念你早背熟了。真正卡住你的&…

2026/6/18 6:41:05阅读更多 →
Ant Design 紧凑模式实战指南:如何节省40%屏幕空间提升信息密度?

Ant Design 紧凑模式实战指南:如何节省40%屏幕空间提升信息密度?

Ant Design 紧凑模式实战指南:如何节省40%屏幕空间提升信息密度? 【免费下载链接】ant-design An enterprise-class UI design language and React UI library 项目地址: https://gitcode.com/GitHub_Trending/an/ant-design 你是否在为屏幕空间不…

2026/6/18 6:41:05阅读更多 →
3个关键步骤:用Rufus轻松解决Windows安装难题

3个关键步骤:用Rufus轻松解决Windows安装难题

3个关键步骤:用Rufus轻松解决Windows安装难题 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus 你是否曾经面对老旧电脑无法安装Windows 11而感到束手无策?是否因为复杂的启…

2026/6/18 6:36:05阅读更多 →
ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

1. ZigBee HA:智能家居的“通用语言”与开发基石如果你正在或计划踏入智能家居设备开发领域,尤其是基于ZigBee协议,那么“ZigBee Home Automation”这个名词你一定不陌生。它不仅仅是ZigBee联盟定义的一套应用层规范,更是确保不同…

2026/6/18 0:00:24阅读更多 →
Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/18 0:00:24阅读更多 →
JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

1. 项目概述在嵌入式开发领域,尤其是基于NXP JN517x这类无线微控制器的项目中,系统稳定性和与外设的可靠交互是两大核心挑战。前者关乎产品能否在无人值守的复杂环境中长期运行,后者则决定了设备能否准确感知世界并与其他芯片“对话”。JN517…

2026/6/18 0:00:24阅读更多 →