跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava算法

Java 数组的定义与使用详解

详细解析了 Java 中数组的定义、创建、初始化及使用方法。内容包括数组的基本概念、动态与静态初始化方式、下标访问与长度获取、for 与 foreach 遍历技巧。深入探讨了数组作为引用类型的内存分配原理,包括 JVM 内存区域划分及数组在堆栈中的表现。此外,还介绍了数组作为方法参数与返回值的用法,并讲解了 Arrays 工具类的常用方法,如转换、拷贝、排序、二分查找及填充等。文章旨在帮助开发者全面掌握 Java 数组的核心知识与实际应用。

邪神洛基发布于 2026/3/22更新于 2026/8/2353 浏览
Java 数组的定义与使用详解

1. 数组的概念

**数组:**可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。

  1. 数组中存放的元素其类型相同。
  2. 数组的空间是连在一起的。
  3. 每个空间有自己的编号,起始位置的编号为 0,即数组的下标。

2. 数组的基础知识

首先要明确一点,数组在 Java 中属于引用类型,引用类型变量的创建都需要 new出来。

2.1 数组的创建

1. 基础创建格式:

T[] 数组名 = new T[N]; T:表示数组中存放元素的类型 T[]:表示数组的类型 N:表示数组的长度

例如:

int[] array1 = new int[10];       // 创建一个可以容纳 10 个 int 类型元素的数组
double[] array2 = new double[5];  // 创建一个可以容纳 5 个 double 类型元素的数组
String[] array3 = new String[3];  // 创建一个可以容纳 3 个字符串元素的数组

数组的创建也可以类似 C 语言那样,把方括号 [] 写在变量名的右边。

2. 类似 C 语言的创建格式:

T 数组名[] = new T[N]; T:表示数组中存放元素的类型 T[]:表示数组的类型 N:表示数组的长度

例如:

int array1[] = new int[10];       // 创建一个可以容纳 10 个 int 类型元素的数组
double array2[] = new double[5];  // 创建一个可以容纳 5 个 double 类型元素的数组
String array3[] = new String[3];  // 创建一个可以容纳 3 个字符串元素的数组

【错误的创建 (初始化) 格式】 没有 new 一个数组对象。将数组长度的定义写在了第一个方括号 [] 里面。

例如:

文章配图

2.2 数组的数据类型

注意:java 中数组的数据类型是 T[],而不是 T[n]。

【在 C 语言中,数组的数据类型是 T[n]】

比如现在有 1 个元素个数为 3 的整型数组'int[] arr = new int[3]',那么该数组 arr 的数据类型是 int[],而不是 int[3]。

2.3 数组的初始化 —— 两种方式

数组的初始化主要分为动态初始化以及静态初始化。

1. 动态初始化:(完全默认初始化)

在创建数组时,直接指定数组中元素的个数 N。创建后,从 0 到 N-1 的数组元素都被默认初始化。

语法格式:T[] 数组名 = new T[N];

例如:int[] array = new int[10];

如果数组中存储元素类型为基础类型,默认值为基础数据类型对应的默认值,比如:int 类型默认为 0,boolean 类型默认为 false。如果数组中存储元素类型为引用类型,默认值为 null。


2. 静态初始化:

在创建数组时不直接指定数据元素个数,而直接将具体的数据内容进行指定。

(完全格式) 语法格式①:T[] 数组名 = new T[]{data1, data2, data3, ..., datan}; (左边也可以写成'T 数组名[]')

(省略格式) 语法格式②:T[] 数组名 = {data1, data2, data3, ..., datan}; (左边也可以写成'T 数组名[]')

【这写法类似 C 语言的数组完全初始化,虽然看上去省去了 new T[],但是编译器编译代码时还是会还原】

例如:

格式 1 的静态初始化:

int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};
String[] array3 = new String[]{

目录

  1. 1. 数组的概念
  2. 2. 数组的基础知识
  3. 2.1 数组的创建
  4. 2.2 数组的数据类型
  5. 2.3 数组的初始化 —— 两种方式
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Linux 管道机制与 Java finally 执行逻辑解析
  • Qwen2.5-VL 与 Janus-Pro-7B 视觉理解能力对比评测
  • Java 实现 PDF 文字与图片水印添加及 MinIO 下载实战
  • AI 时代,写作是比编程更核心的元技能
  • 大模型工程化与传统 AI 工程的核心差异解析
  • 高校 AIGC 检测新规解读:AI 率合格标准与应对策略
  • 55 类空基算法开放接入,无人机低空智能场景方案
  • 双指针算法经典题目解析
  • 汉诺塔问题详解:C++ 递归与非递归实现
  • JavaAI 插件安装与自动化开发实战指南
  • Java JCache 缓存驱逐与缓存过期的本质区别及触发机制解析
  • FPGA 入门:CAN 总线原理与 Verilog 代码详解
  • 2025年AIGC行业回顾:用户井喷、生态重构与算力争夺战
  • C++ 搜索引擎核心:基于正倒排索引的 Searcher 实现详解
  • 学生如何申请及使用 GitHub Copilot 编程助手
  • Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言版)
  • 网络安全、信息安全与数据安全的概念辨析
  • 3分钟快速上手:llama-cpp-python完整安装与配置指南
  • Python 数据清理与准备最佳实践:清洗、合并与存储
  • 大模型 LLM 学习路线图全面解析与核心技能指南

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online