首页 > 编程语言 >【Java基础】什么是数组

【Java基础】什么是数组

时间:2022-08-22 16:25:29浏览次数:99  
标签:arr Java String int 基础 names 数组 new

1.什么是数组

Array:多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理。
image

image
(1)说明
① 数组本身是引用数据类型,数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。
② 创建数据对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。
③ 数组的长度一旦确定,就不能修改
可以通过下标的方式调用指定位置的元素,从0开始
④ 数组分类:一维、二维、三维...;基本数据类型数组、引用数据类型数组。
image

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
image

(2)执行

String[] names = new String[4];
names[1] = "张三";
names[2] = "李四";

栈内存中新增变量names地址指向堆内存中的地址,引用类型默认赋值为null,然后执行赋值操作。
image

(3)执行names = new String[3];
执行new操作在堆内存中开辟新的连续地址,默认值为null,names指向新的地址,原来的引用失效。
image

标签:arr,Java,String,int,基础,names,数组,new
From: https://www.cnblogs.com/zhishu/p/16602795.html

相关文章