JavaSE基础(四)Java数组

Java数组

Random(随机数)

作用:用于产生一个随机数。

使用步骤:

1.导包

import java.util,Random;

2.创建对象

Random  r=new Random();

3.获取随机数:

int num=r.nextInt(10);获取数据的范围[0,10)包括0,不包括10;

数组:

  1. 数组是存储多个变量(元素)的东西(容器)
  2. 多个变量的数组类型要一致

定义格式:

1.数组类型 [ ] 数组名;(推荐方式)

2.数据类型 数组名[ ];

举例:

int [ ] arr; 定义一个int类型的数组,数组名是 arr;

int arr [ ];定义一个int类型的变量,变量名为arr数组;

数组初始化:

1.所谓初始化;就是为数组开辟内存空间,并为数组中的每个元素赋予初始值

2.我们有两种方式实现数组的初始化

动态初始化   :只给出长度,由系统给出初始化值

静态初始化:给出初始化值,由系统决定长度

动态初始化:数据类型 [] 数组名 =new 数据类型 [ 数组长度];

举例:  int []  arr =new int [3];

左边:

int:说明数组的元素类型是int类型

[]:说明是一个数组

arr:数组的名称

右边

new:为数组申请内存分配,开辟空间

int :说明是int类型

[]说明是一个数组

3为了数组长度,是数组中的元素个数

输出数组名:

数组中的每一个元素都是有编号,编号从0开始,最大的编号是数组的长度-1

通过数组名和编号的配合使用我们就可以获取指定编号的元素值

编号的专业名称:索引

访问格式:数组名[索引]

Java中的内存分配图解

  1. 栈(存储的是局部变量)
  2. 堆(存储的是new出来的东西)
  3. 方法区
  4. 本地方法区(和系统相关)
  5. 寄存器(给CPU使用)

栈:

存储的是局部变量

局部变量是定义在方法中的变量

使用完毕,立即回收

堆:

存储的是new出来的东西,实体 对象

每一个对象都有地址值

每一个对象的数据都有默认值

byte,short,int,long     0

float, double  0.0

char ‘\u 0000’

boolean false true

引用类型   null

使用完毕后,会在垃圾回收器 空闲的时间被回收

数组初始化静态初始化

静态初始化:

   数据类型 [] 数组名 =new 数据类型[]{元素1,元素2,元素3,...};

举例:

int [] arr=new int[ ]{1,2,3}

简化格式:

数据类型 [] 数组名={元素1,元素2,元素3,...};

int [] arr={1,2,3}

数组操作的两个常见问题

1.ArrayIndexOutOfBoundException:数组索引越界异常

产生原因:我们访问不存在的索引

引用类型:类,接口,数组

常量:空常量,null 是可以赋值给引用类型的

2.NullPointerException:空指针异常

产生原因:数组已经不存在指向堆内存的数据了,你还使用数组名去访问元素

为了解决数组中的元素的个数:数组提供一个属性:length

用于获取数组元素的个数:格式 数组名.length

二维数组:就是元素为一维数组的数组

定义格式:

1.数据类型 [] [] 数组名;(推荐方式)

2.数据类型 数组名[][];

3.数据类型[]数组名[];

初始化:

1.动态初始化:

数据类型[][]数组名=new 数据类型[M][N];

M表示的是二维数组中一维数组的个数

N表示的是一维数组中的元素个数

2.静态初始化

数据类型[][]数组名=new 数据类型[][]{{元素1},{元素2},...};

简化格式

数据类型[][]数组名={{元素1},{元素2},...};

二维数组配合索引可以获取到一个一维数组

每一个一维数组配合索引名可以获取到数组中的元素

举例:

一个二维数组:arr

从中获取一维数组 arr [索引]

获取二维数组的元素:arr[索引][索引]

发布了49 篇原创文章 · 获赞 31 · 访问量 2909

猜你喜欢

转载自blog.csdn.net/cjy_lean/article/details/98741106