学习笔记 - Java 数组
Beginning
数组的概述#
数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
数组是有序排列的,且数组属于引用数据类型,但数组中的元素既可以是基本数据类型,又可以是引用数据类型。
数组的存储是在内存中开启一片连续的空间,长度一旦确定就不能修改。
一维数组的使用#
声明和初始化#
int[] ids; //声明
//静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids = new int[]{1001, 1002, 1003, 1004};
//动态初始化:数组的初始化和数组元素的赋值操作分开进行
String[] names = new String[5]; //定义长度
int[] arr = {1, 2, 3, 4}; //也是正确的,类型推断
数组的默认初始化值#
-
基本数据类型:
-
整型:0
-
浮点型:0.0
-
char 型:0 或 '\u0000' ,而非 '0'
-
boolean 型:false (在内存中也为 0 )
-
-
引用数据类型:
- String 型:null ,非 'null'
数组的内存#
数组是一种引用内存,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的。
实际的数组对象(即数组元素)被存放在堆内存(heap)中,数组的引用变量(即数组对象)被存储在栈内存中。

数组对象如果重新赋值,那么数组对象重新指向新的实际数组的地址值。数去引用的旧数组变成垃圾,等待垃圾回收机制回收。具体分析如下图:

多维数组的使用#
声明和初始化#
以二维数组为例:
//静态初始化
int[][] arr1 = new int[][]{{1, 2, 3}, {4, 5}, {6, 7, 8}};
//动态初始化
String[][] arr2 = new String[3][2];
String[][] arr2 = new String[3][]; //列可空,但行不可空
int[][] arr1 = {{1, 2, 3}, {4, 5}, {6, 7, 8}}; //类型推断
二维数组直接使用 lenth 属性时得到的是行数,对某一行使用 lenth 属性时得到的是元素个数(即长度)。
二维数组未初始化时,输出二维数组得到的是内存地址,输出外层元素时也为内存地址,输出内层元素时为 0 。
二维数组的内存结构#
Arrays 工具类的使用#
在 java.util.Arrays 类中包含操作数组的各种方法。
参考#
Ending
作者:Koi.C
出处:https://www.cnblogs.com/KoiC/p/17629385.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
声明:转载或使用请注明本文地址,感谢您的阅读!如果文章内容帮到了您,烦请点一下推荐,不胜感激!
欢迎关注个人公众号!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)