【Java基础】数组基础


1.数组基础概念

1.1为什么要引入数组

首先我们引入一个例子:当我们需要输出5个学生的成绩Score(假设为10,20,30,40,50)时,我们首先想到的是使用sout的方式直接输出对应的五个数据。即

System.out.println(10);
System.out.println(20);
System.out.println(30);
System.out.println(40);
System.out.println(50);

那么首先我们可以发现,Score中的数据类型都是相同的。在只有五个数据的时候我们使用sout的方式可以很快的输出,那么当数据量为成百上千的时候呢?
因此,我们引入了数组。我们可以在数组中存储相同类型的多个数据

1.2数组的概念

数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间
数组示意图
在内存中,由于数组的排列是连续的。因此我将他转化为上图的排列方式。而数组的每个数据都有自己的一个存储空间。为了获取对应空间中的数据,我们就需要进入到对应内存地址,最终获取到这段内存中的数据。
在Java中,底层代码已经为我们解决了这件事情,同时Java为数组中的每个数据进行了以0开始计数的编号,这个编号也是数组的下标

1.3 数组的创建及初始化

1.3.1数组的创建

数组的基础创建公式为

T[] array = new T[N]; // T:数组中存放的数据类型,array为数组名,N为数据个数(数组长度)。
//举例
int[] array2 = new int[10];//在数组array中存放数据类型为int,数组长度为10

1.3.2 数组的初始化

数组的初始化主要分为静态初始化和动态初始化
动态初始化:在创建数组的时候直接指定数组中元素个数。

int[] array = new int[10];

静态初始化:在创建数组的时候不直接指定数组数据个数,而直接将数据内容固定。

int[] array1 = new int[]{
   
   1,2,3,4};

【注意事项】
1.在静态初始化过程中,{1,2,3,4}表示为数组中的内容,我们在定义的过程中并没有明确表示数组的长度为4。但是不用担心,Java在编译过程中会为我们自己计算数组的元素个数。
2.在静态初始化中,因为直接存入数据的原因,需要注意的是存入的数据类型必须与[]前的数据类型一致。
3.静态初始化可以进行简写:

int[] array1 = {
   
   0,1,2,3,4,5,6,7,8,9};
double[] array2 = {
   
   1.0, 2.0, 3.0, 4.0, 5.0};
String[] array3 = {
   
   "hell", "Java", "!!!"};

虽然在简写过程中省略了new T[],但是在编译器编译代码时还是会还原的。
4.静态和动态初始化可以分为两步,但是不可以省略格式。

int[] array4;
array4 = new int[4]; 
int[] array5;
array5 = new int[]{
   
   1,2,3};

5.如果创建数组的过程中没有对数组进行初始化,数组中的元素存在默认值

  • 如果数组中存在的元素类型为基本元素类型,默认值为基类类型对应的默认值。
类型 默认值
byte 0
int 0
short 0
long 0
float 0.0f
double 0.0
boolean false
char /u0000

在基本类型默认值中,char类型是比较特殊的“0”值,在编译运行后可能打印不出来,为空。

  • 当数组类型为引用类型时,默认值为null
	String[] str = new String[5];
    System.out.println(str[1]);//null

在这里插入图片描述

1.4数组的使用

1.4.1 数组的访问

在上文中我们知道,数组在内存中是一段连续的空间,Java通过数字对数组进行编号。空间的编号从0开始并逐渐递增,这个编号称为数组的下标,我们可以通过下标访问数组的任一元素。

int[]array = new int[]{
   
   10
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值