尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Java第五章

Java第五章
📅 发布时间:2026/7/5 8:52:33

一、数组基础

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 + " ");
}
}
}

相关新闻

  • Claude Opus百万上下文实测:打造高保真编程脑
  • Gobuster断点续扫与偏移量设置:从原理到实战的完整指南
  • CV与NLP算法落地实践:从模型训练到业务价值,AI算法的最后一公里

最新新闻

  • 告别内卷式养生,女性的温柔轻养之道
  • VIISP 模块培训总结:从接口协议到实战排查
  • DHDMS-Lang 自举编译器形式化验证
  • Three.js 雪花教程
  • 塑胶件自攻螺丝设计指南:M1.2-M4.0 尺寸公式与 8 次拆装极限解析
  • Supabase:基于 Postgres 的开发平台,功能丰富,支持多语言开发

日新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号