news 2026/6/18 5:09:58

Java第五章

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java第五章

一、数组基础

1. 定义
数组是存储一组相同数据类型数据的容器,属于引用数据类型。

2. 特点

• 内部所有元素数据类型统一

• 创建完成后长度固定,无法修改

• 元素依靠索引访问,索引从0开始,最大索引为数组长度-1

3. 适用场景
批量存储、处理多个同类型数据

二、一维数组

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、long:0

• float、double:0.0

• char:空字符 \u0000

• boolean:false

• String、数组等引用类型:null

3. 数组访问与遍历

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[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int num : arr){
System.out.print(num + " ");
}
}
}

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

HYDRUS全模块进阶应用:土壤–水–污染物耦合模拟

HYDRUS软件能够模拟一维和多维非饱和多孔介质中的水流、溶质运移、根系吸水与养分吸收以及热量传输&#xff0c;并提供多种扩展模块&#xff0c;功能强大、界面友好、操作灵活&#xff0c;已在环境科学、水文地质、农业与水利等领域得到广泛应用&#xff0c;深受全球学者推崇。…

作者头像 李华
网站建设 2026/6/18 4:58:20

SuperSonic:革命性智能数据分析平台让数据对话触手可及

SuperSonic&#xff1a;革命性智能数据分析平台让数据对话触手可及 【免费下载链接】supersonic SuperSonic is the next-generation AIBI platform that unifies Chat BI (powered by LLM) and Headless BI (powered by semantic layer) paradigms. 项目地址: https://gitco…

作者头像 李华
网站建设 2026/6/18 4:58:13

微信小游戏Unity适配方案:5分钟快速上手完整指南

微信小游戏Unity适配方案&#xff1a;5分钟快速上手完整指南 【免费下载链接】minigame-unity-webgl-transform 微信小游戏Unity引擎适配器文档。 项目地址: https://gitcode.com/GitHub_Trending/mi/minigame-unity-webgl-transform 你是否想将现有的Unity游戏快速移植…

作者头像 李华
网站建设 2026/6/18 4:47:01

Automation Workflow设计:让AI自己跑起来

人类需要休息&#xff0c;AI不需要你凌晨三点被电话叫醒&#xff0c;因为线上数据管道挂了。你爬起来&#xff0c;打开电脑&#xff0c;排查日志&#xff0c;手动重启&#xff0c;盯着监控确认恢复——然后发现同样的问题上个月已经出现过三次&#xff0c;每次都是同样的操作序…

作者头像 李华
网站建设 2026/6/18 4:25:49

小程序用户留存提升的4个核心策略

上篇文章我讲了小程序裂变活动的3个黄金公式。这篇文章&#xff0c;我会深入讲解小程序用户留存的核心方法。留存&#xff0c;是小程序增长最难的环节。90%的小程序死在"留存"上。因为他们不懂这4个核心策略。策略1&#xff1a;优化首次体验&#xff08;First Time E…

作者头像 李华
网站建设 2026/6/18 4:13:11

【Springboot毕设全套源码+文档】基于Java+springboot医药销售管理系统的设计与实现(丰富项目+远程调试+讲解+定制)

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

作者头像 李华