【Java基础】什么是数组
1.什么是数组
Array:多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理。
(1)说明
① 数组本身是引用数据类型,数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。
② 创建数据对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。
③ 数组的长度一旦确定,就不能修改。
可以通过下标的方式调用指定位置的元素,从0开始。
④ 数组分类:一维、二维、三维...;基本数据类型数组、引用数据类型数组。
2.一维数组
(1)声明
int a[]; int[] a1; double b[]; String[] c; int a[5]; //×错误的,声明时不能指定长度
(2)初始化
① 静态初始化
定义时就为数组元素分配空间并赋值
int arr[] = new int[]{3,9,8}; //或 int[] arr = {3,9,8}; String names[] = {"张三","李四","王五"};
② 动态初始化
声明数组且为数组元素分配空间与赋值的操作分开进行
int[] arr = new int[3]; arr[0] = 3; arr[1] = 9; arr[2] = 8;
(3)数组默认值
通过下标arr[2]
来引用数组元素,下标从0开始,数组长度为n,下标可以取值 0~n-1,arr.length
属性表示数组长度。
int a[] = new int[5]; String names[] = new String[3]; System.out.println(a[2]); //0 System.out.println(names[2]); //null //通过length属性遍历数组 for (int i = 0; i < names.length; i++) { System.out.println(names[i]); }
数组元素类型 | 元素默认初始值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0F |
double | 0.0 |
char | 0或写为'\u0000'(表现为空) |
boolean | false |
引用类型 | null |
3.内存解析
int[] arr = new int[]{1,2,3}; String[] names = new String[4]; names[1] = "张三"; names[2] = "李四"; names = new String[3]; System.out.println(names[1]); //null
(1)首先执行int[] arr = new int[]{1,2,3};
在栈内存中变量arr地址指向堆内存中的地址,默认值为0,然后赋值为1,2,3
(2)执行
String[] names = new String[4]; names[1] = "张三"; names[2] = "李四";
栈内存中新增变量names地址指向堆内存中的地址,引用类型默认赋值为null,然后执行赋值操作。
(3)执行names = new String[3];
执行new操作在堆内存中开辟新的连续地址,默认值为null,names指向新的地址,原来的引用失效。
分类:
Java / JAVA基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本